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

嗨,我想允许我的用户互相发送消息,我想有一个像表格结构

用户:ID | 名称

消息:至| 来自| 身体

我对rails很新,我不确定我的模型应该是什么样子,或者如何构建我从同一列有两个FK的关系。 To&From是发送消息的用户和接收者。 我正在为我的模型使用ActiveRecord。

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

你可以这样做

 #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