Могу ли я установить в Rails отношение has_many для модели из другой модели? - PullRequest
0 голосов
/ 30 июня 2011

Есть ли способ, которым я могу установить обе половинки отношения own_to / has_many только в одной из моделей? Поэтому я хочу сделать что-то вроде:

class A < ActiveRecord::Base
end

class B < ActiveRecord::Base
  belongs_to :a
  A.has_many :b
end

Очевидно, что это не работает (или я бы использовал это), но я надеюсь, что это объясняет, что я имею в виду ...

1 Ответ

2 голосов
/ 30 июня 2011

Я не уверен, почему вы хотите, но, если у вас есть веская причина ...

has_many - это просто метод класса, определенный в ActiveRecord :: Base, вызывающий A.has_many :bдолжны работать.

Возможно, у вас есть проблемы в процессе разработки с порядком загрузки.Если вы загрузите пример, который вы дали и назвали a = A.new, класс B никогда не загружался, поэтому a понятия не имеет, что A имеет много B.В производстве, где весь список классов загружается при запуске, это не будет проблемой.В процессе разработки вы можете обойти это, используя оператор require, однако затем вы довольно сильно связываете два файла.

Я не пробовал, но в теории это единственное, что яможет думать о том, что мешает вашей настройки выше работать.

...