Rails中的消息传递系统

时间:2010-11-30 16:17:00

标签: ruby-on-rails forms has-and-belongs-to-many

我想在rails中设置白名单消息系统,用户可以选择要发送评论的其他用户。每个人或只有一个人可以看到该消息。我该如何设置它以及消息形式是什么样的?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您还可以查看acts_as_messageable插件。它有点过时了,但它解决了你的问题。