Module: PrivateMessages::HasPrivateMessage::ClassMethods
- Defined in:
- lib/private_messages/has_private_message.rb
Instance Method Summary collapse
-
#has_private_message(options = {}) ⇒ Object
Sets up a model have private messages, defining the child class as specified in :class_name (typically “Messages”).
Instance Method Details
#has_private_message(options = {}) ⇒ Object
Sets up a model have private messages, defining the child class as specified in :class_name (typically “Messages”). Provided the following instance messages:
-
sent_messages- returns a collection of messages for which this object is the sender. -
received_messages- returns a collection of messages for which this object is the recipient.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/private_messages/has_private_message.rb', line 14 def ( = {}) [:class_name] ||= 'Message' unless included_modules.include? InstanceMethods class_attribute :options table_name = [:class_name].constantize.table_name has_many :sent_messages, -> { where("#{table_name}.sender_deleted = false").order("#{table_name}.created_at DESC") }, :class_name => [:class_name], :foreign_key => 'sender_id' #:includes => :recipient, # #.order("#{table_name}.created_at DESC") #:order => "#{table_name}.created_at DESC", #:conditions => ["#{table_name}.sender_deleted = ?", false] has_many :received_messages, ->{ where("#{table_name}.recipient_deleted = false").order("#{table_name}.created_at DESC") }, :class_name => [:class_name], :foreign_key => 'recipient_id' #, -> #{ # :includes => :sender, # :order => "#{table_name}.created_at DESC", # :conditions => [, false] #} #extend ClassMethods include InstanceMethods end self. = end |