除了id之外的Rails外键

时间:2013-09-25 04:30:51

标签: ruby-on-rails activerecord key

我有一个名为Ad的ActiveRecord,它有列ID和server_id。它们都是独一无二的。 id由Rails给出,但这里有意义的是server_id
然后,我需要创建另一个名为Bid的ActiveRecord,其与Ad具有1对1的关系。出价有一个键ad_id,指的是广告server_id

我知道我应该指定Ad has_one BidBid belongs_to Ad,并通过foreign_key指定外键名称:"ad_id"。令我不安的是,我只能了解如何让出价。ad_id引用Ad.id,而我希望它引用广告。server_id。 任何人都可以告诉我如何实现这一目标吗?谢谢!

2 个答案:

答案 0 :(得分:2)

用户主键

  Bid.rb

  belongs_to :ad, :foreign_key => :ad_id, :primary_key => :server_id


  Ad.rb

  has_one :bid, :foreign_key => :ad_id, :primary_key => :server_id
此处不需要

foregin_key选项,但添加以使其与primary_key之间有所区别。

答案 1 :(得分:0)

您是否尝试在生成模型时使用“references”。 即。

rails generate model Advertisement bid:references