我有两个玩家参与一项活动并且他们在那段时间交换消息,因为很多玩家与其他玩家一起玩很多活动,我开始研究消息存档功能,我有一些问题设计,因为我想按活动存档。
在我的消息模型中,每条消息都有一个activity_id
字段。
我的用户模型:
has_many :sent_messages, :foreign_key => 'sender_id', :class_name => Message
has_many :received_messages, :foreign_key => 'receiver_id', :class_name => Message
我的archived_message:
belongs_to :user, :class_name => User
belongs_to :message, :class_name => Message
attr_accessible :activity_id
我刚刚添加了尝试将其添加到我的模型中:
has_many :activity_archived_messages, :through => :archived_messages, :source => :message
现在这是我一直在苦苦挣扎的部分,因为如果它们属于同一个活动,我想存档收到和发送的消息。
我该怎么做?
答案 0 :(得分:1)
您可以在模型中添加Activity
,然后将其存档:
class Activity < ActiveRecord::Base
has_and_belongs_to_many :messages
has_and_belongs_to_many :participants, class_name: User
end
现在,您可以存档此,并将所有相关消息双向保存在您的存档中。