aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/discussion.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/discussion.rb')
-rw-r--r--app/models/discussion.rb16
1 files changed, 9 insertions, 7 deletions
diff --git a/app/models/discussion.rb b/app/models/discussion.rb
index cc1da7a..ad53523 100644
--- a/app/models/discussion.rb
+++ b/app/models/discussion.rb
@@ -13,10 +13,12 @@ class Discussion < ActiveRecord::Base
has_many :users, :through => :speakers
# отметки о прочтении юзеров
- # has_many :views, :dependent => :destroy, :class_name => "DiscussionView"
-
- # жутко неоптимизированная часть, возможны баги
- # scope :unread_for, lambda { |user_or_user_id| joins(:views, :speakers).where("discussions.updated_at >= discussion_views.updated_at AND speakers.user_id = ?", user_or_user_id.is_a?(User) ? user_or_user_id.id : user_or_user_id ) }
+ has_many :views, :dependent => :destroy, :class_name => "DiscussionView"
+
+ scope :unread_for, (lambda do |user_or_user_id|
+ user = user_or_user_id.is_a?(User) ? user_or_user_id.id : user_or_user_id
+ joins(:views, :speakers).where("discussions.updated_at >= discussion_views.updated_at AND speakers.user_id = ? AND discussion_views.user_id = ?", user, user)
+ end)
accepts_nested_attributes_for :messages
@@ -81,9 +83,9 @@ class Discussion < ActiveRecord::Base
end
# дата последнего сообщения в дискуссии
- def last_message_at
- self.messages.last ? self.messages.last.created_at : nil
- end
+ # def last_message_at
+ # self.messages.last ? self.messages.last.created_at : nil
+ # end
# проверка, является ли дискуссия непрочитанной для пользователя
def unread_for?(user)