序章。

いや、つうか、ね?
SNS作るにしても、ホンの基本的なことの取っ掛かりに過ぎない、ユーザ管理部分しか作ってない訳なんですがwww


未だ序章にすら到達してないじゃんwww


まあ、それはそれでいいんだけど。 =>イイのか? オレwww


で、ユーザ間のメッセージ機能、とりあえず、お友達になりましょうメッセージの処理をしなきゃいけない訳ですわ。


で、その為に、Userモデルから見たMessageモデルのアソシエイションを拡張しますた。
app/models/user.rb

   has_many :sent_messages,      :foreign_key => :sender_id,
-                                :class_name => "Message"
+                                :class_name => "Message" do
+                                  def with_type(type)
+                                    type_id = MessageType.find(:first, :conditions => { :name => type })
+                                    find(:all, :conditions => { :message_type_id => type_id })
+                                  end
+
+                                  def with_state(state)
+                                    find(:all, :conditions => { :senders_state => state })
+                                  end
+
+                                  def with_type_and_state(type, state)
+                                    type_id = MessageType.find(:first, :conditions => { :name => type })
+                                    find(:all, :conditions => { :message_type_id => type_id,
+                                                                :senders_state => state })
+                                  end
+                                end
   has_many :recieved_messages,  :foreign_key => :reciever_id,
-                                :class_name => "Message"
+                                :class_name => "Message" do
+                                  def with_type(type)
+                                    type_id = MessageType.find(:first, :conditions => { :name => type })
+                                    find(:all, :conditions => { :message_type_id => type_id })
+                                  end
 
+                                  def with_state(state)
+                                    find(:all, :conditions => { :recievers_state => state })
+                                  end
 
+                                  def with_type_and_state(type, state)
+                                     type_id = MessageType.find(:first, :conditions => { :name => type })
+                                     find(:all, :conditions => {  :message_type_id => type_id,
+                                                                  :recievers_state => state })
+                                  end
+                                end


なんか、もう、慣れたもんですなwww


でも、こうやってメソッド増やせるのって、便利で分かりやすいよね。