Могут ли рельсы иметь несколько отношений с моделью в одной модели? - PullRequest
0 голосов
/ 12 декабря 2011

У меня есть модель 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 ]

3 голосов
/ 12 декабря 2011
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
0 голосов
/ 12 декабря 2011

Этого должно быть достаточно:

class SimilarMerchant < ActiveRecord::Base
  set_primary_key 'merchant_id'


  belongs_to :merchant, :foreign_key => 'related_merchant_id'

end

В соответствии с документацией предполагается, что foreign_key является именем ассоциации плюс суффикс _id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...