можно иметь два разных внешних ключа в модели отношений AR - PullRequest
0 голосов
/ 07 марта 2012

У меня проблемные отношения, когда есть вещи, которые можно связать в машину.

например:

class Item < ActiveRecord::Base
  has_many :object_connections, :foreign_key => 'engine_id'
  has_many :object_connections, :foreign_key => 'chassis_id'

Похоже, это выглядит только в последний раз. Есть ли способ указать либо? Кроме того, возможно ли добавить условия типа :is_engine => true? Это принятый проект, и я просто пытаюсь заставить его работать.

1009 * ТНХ *

1 Ответ

0 голосов
/ 07 марта 2012

Я думаю, вы ищете has_one ассоциацию с опцией :class_name:

class Item < ActiveRecord::Base
  has_one :engine,  :foreign_key => 'engine_id',  :class_name => 'ObjectConnection'
  has_one :chassis, :foreign_key => 'chassis_id', :class_name => 'ObjectConnection'
end

Ассоциации должны иметь уникальное имя, и обычно ActiveRecord может выяснить:class_name на основании ассоциации;у вас, однако, есть две вещи, указывающие на одно и то же место, поэтому вы должны соединить все это вручную.

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