两个外键与ActiveRecord?[轨]

Dan*_*ark 4 ruby-on-rails foreign-keys

我有一个User类引用Message类.消息类有一个user_id (发送者)和一个receiver_id.所以在User类中我有

  has_many :messages
  has_many :messages, :foreign_key => "receiver_id"
Run Code Online (Sandbox Code Playgroud)

然后在我有的Message类中

  belongs_to :user
Run Code Online (Sandbox Code Playgroud)

第一个关系 - 通过user_id- 非常顺利.我没有丝毫想知道第二个关系的Message类要放什么.消息表是使用user_id和构建的receiver_id,因此支持就在那里.

这甚至可能吗?

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

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

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

ass*_*ake 11

在您的User类中:

has_many :messages
has_many :received_messages, 
         :foreign_key => "receiver_id", :class_name => "Message"
Run Code Online (Sandbox Code Playgroud)

在您的Message类中:

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


@user = User.first
@user.messages
@user.received_messages
Run Code Online (Sandbox Code Playgroud)