2009-01-30 64 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