序章。
いや、つうか、ね?
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
でも、こうやってメソッド増やせるのって、便利で分かりやすいよね。