ActiveRecord在表中的同一列中有2个FK

时间:2014-05-17 18:32:17

标签: ruby-on-rails activerecord ruby-on-rails-4

您好我想允许我的用户互相发送消息,我想有一个像

这样的表结构

用户: ID |名称

消息: 到|来自|体

我对rails相对较新,我不确定我的模型应该是什么样的,或者如何构建我从同一列有两个FK的关系。至&来自发送消息的用户和接收者。我将ActiveRecord用于我的模型。

有人能让我指出正确的方向吗?我有一种感觉,我应该使用have_many,但我希望这种关系恰好是2。

1 个答案:

答案 0 :(得分:1)

你可以这样做

#user.rb
Class User < ActiveRecord::Base

has_many :messages

end

#message.rb
Class Message < ActiveRecord::Base

belongs_to :sender,class_name => "User",foreign_key => 'from'

belongs_to :receiver,class_name => "User",foreign_key => 'to'

end

注意:最好也建议integer foreign_keys。如果您想更改foreign_keys,我会推荐名称sender_idreceiver_id