2014-03-26 56 views
0

我有兩個玩家參與單一活動,他們在那段時間交換信息,因爲許多玩家與其他玩家一起玩很多活動,所以我開始研究消息存檔功能,並且我有關於設計的一些問題,因爲我想按活動進行歸檔。多對多關係與額外的欄杆

在我的消息模型中,每條消息都有一個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 

現在,這是部分我一直在掙扎,因爲如果它們屬於同一個ac,我想存檔接收和發送的消息tivity。

我如何做到這一點?

回答

1

你可以添加一個Activity到模型中,然後存檔:

class Activity < ActiveRecord::Base 
    has_and_belongs_to_many :messages 
    has_and_belongs_to_many :participants, class_name: User 
end 

現在,你可以存檔這個,並且擁有所有的相關的消息,在兩個方向上,保存在您的檔案。

相關問題