Module: ReadActivity::Readable::ClassMethods

Defined in:
lib/read_activity/readable.rb

Instance Method Summary collapse

Instance Method Details

#find_read_by(reader) ⇒ Object



12
13
14
# File 'lib/read_activity/readable.rb', line 12

def find_read_by(reader)
  self.includes(:read_activity_marks).merge(ReadActivityMark.where(reader: reader)).references(:read_activity_marks)
end

#find_unread_by(reader) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/read_activity/readable.rb', line 16

def find_unread_by(reader)
  self.joins(%Q(
    LEFT OUTER JOIN
    (SELECT * FROM read_activity_marks WHERE reader_id = #{reader.id}) AS readable_marks
    ON readable_marks.readable_id = #{self.table_name}.id
  )).where("readable_marks.readable_id IS NULL")
end