我想在rails中设置白名单消息系统,用户可以选择要发送评论的其他用户。每个人或只有一个人可以看到该消息。我该如何设置它以及消息形式是什么样的?
答案 0 :(得分:2)
添加仅包含message_id
和recipient_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插件。它有点过时了,但它解决了你的问题。