Ruby on rails 3.2 rails的消息传递gems具有按线程分组消息的能力
我有一个rails 3应用程序。我想添加具有以下功能的内部消息系统:Ruby on rails 3.2 rails的消息传递gems具有按线程分组消息的能力,ruby-on-rails-3.2,rubygems,messaging,Ruby On Rails 3.2,Rubygems,Messaging,我有一个rails 3应用程序。我想添加具有以下功能的内部消息系统: 用户有许多消息(发送和接收) 要发送消息,用户可以在“收件人”字段中键入一封或多封电子邮件。每封电子邮件都是自动完成的(不需要在gem中) 邮件可以标记为已读、未读和垃圾 消息按线程分组:如果Bob向Alice发送消息,Alice回复,然后Bob再次回复,Bob在其收件箱中只看到此对话的一个条目。(很像Gmail) 你知道有什么宝石可以帮我吗 其中最流行的是Mailboxer()。但是我不太喜欢这个模型(通知而不是消息,对
- 用户有许多消息(发送和接收)
- 要发送消息,用户可以在“收件人”字段中键入一封或多封电子邮件。每封电子邮件都是自动完成的(不需要在gem中)
- 邮件可以标记为已读、未读和垃圾
- 消息按线程分组:如果Bob向Alice发送消息,Alice回复,然后Bob再次回复,Bob在其收件箱中只看到此对话的一个条目。(很像Gmail)
其中最流行的是Mailboxer()。但是我不太喜欢这个模型(通知而不是消息,对话而不是线程,收据表…)。所以我对其他选择很感兴趣。我想建议如下联系
class User < ActiveRecord::Base
has_many :messages_received, :class_name => 'Message', :foreign_key=> 'to_user_id'
has_many :messages_sent, :class_name => 'Message', :foreign_key=> 'from_user_id'
end
class Message < ActiveRecord::Base
belongs_to :from_user, :class_name => 'User' # from_user_id field fk Users
belongs_to :to_user, :class_name => 'User' # to_user_id field fk Users
belongs_to :thread, :class_name => 'Message' # Reference to parent message
has_many :replies, :class_name => 'Message', :foreign_key => 'thread_id'
end
此外,还可以更轻松地检查用户发送的@user.messages\u sent消息
并以@user.messages\u received的形式接收
a) 您可以使用自动完成电子邮件
b) 您可以使用布尔字段read、unread和trashed这有帮助吗?
first_msg = Message.new(:to_user => userA, :from_user => userB, :body => 'Hello!')
userA_reply = first_msg.replies.build(:to_user => userA, :from_user => userB, :body => 'hi back')
userB_reply = first_msg.replies.build(:to_user => userB, :from_user => userA, :body => 'later')