两个外键与ActiveRecord? [轨]

时间:2009-01-30 23:15:23

标签: ruby-on-rails foreign-keys

我有一个User类,引用了Message类。邮件类有user_id(发件人)和receiver_id。所以在User类中我有

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

然后在我有的Message类中

  belongs_to :user

第一个关系 - 通过user_id - 非常顺利。 我对第二个关系的Message类没有任何想法。消息表是使用user_idreceiver_id构建的,所以支持就在那里

这可能吗?

此外,我不知道如何获取用户收到的消息......或收到消息的用户:)

[我知道我可以解决这个问题,因为有一个发送者表和一个接收者表和一个消息表,也许还有一堆其他表(一个会话表!),但是我想这样做,为了它的乐趣。此应用程序仅用于学习。]

同样重要的是:文档会在哪里? This不是很有帮助。

1 个答案:

答案 0 :(得分:11)

在您的用户类中:

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

在您的Message类中:

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


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