rails可以与同一模型中的模型有多种关系吗?

时间:2011-12-12 08:17:00

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

我有一个similar_merchants模型,我可以存储与其他商家相似的商家。

以下是表格中的字段:

merchant_id
related_merchant_id

在这种情况下如何编写关系?

这就是我现在所拥有的:

class SimilarMerchant < ActiveRecord::Base

  # relationships
  belongs_to :merchant
  belongs_to :merchant, :foreign_key => 'related_merchant_id'

end

2 个答案:

答案 0 :(得分:3)

class SimilarMerchant < ActiveRecord::Base

  # relationships
  belongs_to :merchant
  belongs_to :related_merchant, :foreign_key => 'related_merchant_id', :class_name => "Merchant"

end

这样做。你可以这样打电话:

similar_merchant = SimilarMerchant.find(1)
similar_merchant.merchant
=> # Merchant record
similar_merchant.related_merchant
=> # Related Merchant record

答案 1 :(得分:0)

这应该足够了:

class SimilarMerchant < ActiveRecord::Base
  set_primary_key 'merchant_id'


  belongs_to :merchant, :foreign_key => 'related_merchant_id'

end

根据文档,foreign_key被猜测为关联的名称加上'_id'后缀。