2009-01-30 80 views
4

我有一個引用Message類的User類。消息類別有一個user_id(這是發件人)和receiver_id。因此,在用戶I類有有ActiveRecord的兩個外鍵? [rails]

has_many :messages 
    has_many :messages, :foreign_key => "receiver_id" 

,然後在Message類我有

belongs_to :user 

第一個關係 - 通過user_id - 去得很好。 我沒有絲毫的想法在第二種關係的Message類中放置什麼。消息表格內置有user_idreceiver_id,所以支持就在那裏。

這甚至可能嗎?

而且,那麼我不知道怎麼去由用戶...或誰收到了消息:)用戶收到的消息

[我知道我可以解決此通過有一個發件人表和一個接收者表,一個消息表和一堆其他表(一個對話表!),但我想這樣做,爲了它的樂趣。此應用程序將僅用於學習。]

同樣重要的是:該文檔在哪裏? This不是很有幫助。

+0

您是否嘗試過嗎? http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#M001599 – assplecake 2009-01-30 23:48:30

+0

不錯,這非常有幫助。再次感謝。 – 2009-01-30 23:51:49

回答

11

在用戶等級:

has_many :messages 
has_many :received_messages, 
     :foreign_key => "receiver_id", :class_name => "Message" 

在您的郵件類:

belongs_to :user 
belongs_to :receiver, :class_name => "User" 


@user = User.first 
@user.messages 
@user.received_messages