我正在构建一个演示应用程序以尝试学习RoR,而我对如何处理两个用户与非标准列名称链接的情况感到困惑。
我已经构建了一个User
表,一个Offer
表和一个Contract
表。如果用户创建了优惠,则可以使用belongs_to :user
模型中的Offer
将用户ID与优惠相关联。这显然会将Offer.user_id
列与User.id
列相关联。
但是,一旦优惠成为合约,就会有Contract.buyer_id
和Contract.seller_id
,两者都指向User.id
- 但我如何在{{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
的列,我认为如果您明确指定它会使其更容易阅读