diff options
| -rw-r--r-- | README.md | 10 | ||||
| -rw-r--r-- | app/models/discussion.rb | 2 | ||||
| -rw-r--r-- | app/models/message.rb | 7 |
3 files changed, 10 insertions, 9 deletions
@@ -35,15 +35,17 @@ By default, the gem provides localized phrases for Russian and English languages You can watch the demo of integration [on YouTube](http://youtu.be/c12gey9DvyU) 1. Add `gem "faye"` to your Gemfile and run `bundle install`. Install Faye by [the screencast](http://railscasts.com/episodes/260-messaging-with-faye) -2. Create `messaging.js` in `app/assets/javascripts/` with these line: `= require inboxes/faye` +2. Create `messaging.js` in `app/assets/javascripts/` with this line: `//= require inboxes/faye` 3. Copy or replace 2 views from Inboxes example app to your application: [app/views/inboxes/messages/_form](https://github.com/kirs/inboxes-app/blob/master/app/views/inboxes/messages/_form.html.haml) and [app/views/inboxes/messages/create](https://github.com/kirs/inboxes-app/blob/master/app/views/inboxes/messages/create.js.erb) 4. Add config parameters to your application config (last 2 are not necessary): -`config.inboxes.faye_enabled = true` -`config.inboxes.faye_host = "inboxes-app.dev" # localhost by default` -`config.inboxes.faye_port = 9292 # 9292 by default` +```ruby +config.inboxes.faye_enabled = true +config.inboxes.faye_host = "inboxes-app.dev" # localhost by default +config.inboxes.faye_port = 9292 # 9292 by default +``` 5. Faye installation is finished. If you have any troubles, check the [example app](https://github.com/kirs/inboxes-app/) diff --git a/app/models/discussion.rb b/app/models/discussion.rb index e052564..ca56596 100644 --- a/app/models/discussion.rb +++ b/app/models/discussion.rb @@ -65,7 +65,7 @@ class Discussion < ActiveRecord::Base discussions = self.joins(:speakers).includes(:users).where("speakers.user_id = ?", user.id) Rails.logger.info "Searching for ids: #{user.id}, #{user2.id}" discussions.each do |discussion| - dialog = discussion if discussion.private? && ((discussion.users.first == user && discussion.users.last == user2) || (discussion.users.first == user2 && discussion.users.last == user)) + dialog = discussion if discussion.private? && ([discussion.users.first, discussion.users.last] - [user, user2]).empty? end dialog end diff --git a/app/models/message.rb b/app/models/message.rb index b7f9b12..3579e63 100644 --- a/app/models/message.rb +++ b/app/models/message.rb @@ -2,12 +2,12 @@ class Message < ActiveRecord::Base default_scope order(:created_at) - belongs_to :discussion, :counter_cache => true + belongs_to :discussion, :counter_cache => true, :touch => true belongs_to :user validates :user, :discussion, :body, :presence => true - after_save :touch_discussion_and_mark_as_read + after_save :mark_discussion_as_read def visible_for? user self.created_at.to_i >= self.discussion.user_invited_at(user).to_i @@ -15,8 +15,7 @@ class Message < ActiveRecord::Base private - def touch_discussion_and_mark_as_read - self.discussion.touch + def mark_discussion_as_read self.discussion.mark_as_read_for(self.user) end end |
