Rails与不同列名的关系

时间:2014-03-13 19:56:12

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

我正在构建一个演示应用程序以尝试学习RoR,而我对如何处理两个用户与非标准列名称链接的情况感到困惑。

我已经构建了一个User表,一个Offer表和一个Contract表。如果用户创建了优惠,则可以使用belongs_to :user模型中的Offer将用户ID与优惠相关联。这显然会将Offer.user_id列与User.id列相关联。

但是,一旦优惠成为合约,就会有Contract.buyer_idContract.seller_id,两者都指向User.id - 但我如何在{{1}中指定模型?

1 个答案:

答案 0 :(得分:0)

class Contract < ActiveRecord::Base
  belongs_to :buyer, :class_name => "User", :foreign_key => "buyer_id"
  belongs_to :seller, :class_name => "User", :foreign_key => "seller_id"
end

您不必明确提及foreign_key,因为rails会查找<association_name>_id的列,我认为如果您明确指定它会使其更容易阅读