2010-11-30 6 views
0

私は、コメントを送信する他のユーザを選択できるように、レイルリストにホワイトリストのメッセージングシステムを設定したいと考えています。このメッセージは、誰でも見ることができます。どのように私はこれを設定し、メッセージフォームはどのように見えるでしょうか?メッセージングシステムin Rails

答えて

2

message_idrecipient_idだけの結合テーブルを追加してください。

class Message 
    has_and_belongs_to_many :recipients 
end 

class Recipient 
    has_and_belongs_to_many :messages 
end 

m = Message.new 
m.recipients = list_of_recipients 
m.save 

オプションは、受信者ごとにメッセージを複製しています。これは、各受信者がメッセージ受信ボックスを完全に制御できる(メッセージの削除など)という素晴らしい解決策です。

class Message 
    belongs_to :recipient 

    def self.post_message(recipients, text) 
    recipients.each { |r| Message.create(:recipient => r, :text => text) } 
    end 
end 

class Recipient 
    has_many :messages 
end 
+0

2番目のフォームでフォームの外観はどうなりますか?最初のものでは、accepts_nested_attributes_for:受信者権限を作成するだけです。それはどう? – maletor

0

また、acts_as_messageableプラグインをご覧ください。少し古いですが、あなたの懸念に対処しています。