вложенный has_many - PullRequest
       18

вложенный has_many

3 голосов
/ 24 марта 2010

Я использую Rails 2.3.5.

Class User < ActiveRecord::Base
  has_many :phones
end

class Phone < ActiveRecord::Base
  has_many :frequency_bands
end

Я хочу получить все частоты_полос для пользователя. Я знаю, что могу написать метод def freq_bands для пользователя, но я хотел бы знать, возможно ли иметь has_many freq_bands для пользователя. Таким образом, я могу связать вызов.

То, что я хотел бы иметь, это

class User < ActiveRecor::Base
   has_many :frequence_bands, :through => phones
end

Я думаю, что возможно использовать вложенный has_many с помощью этого плагина http://github.com/ianwhite/nested_has_many_through

Однако, если возможно, я бы хотел не использовать другой плагин и полагаться исключительно на рельсы.

Ответы [ 2 ]

7 голосов
/ 24 марта 2010
class User < ActiveRecord::Base
  has_many :phones
  has_many :frequence_bands, :through => :phones
end

Работает просто отлично. Вам понадобится только вложенный плагин has_many_through, если у самих телефонов также есть отношение has_many_through, которого нет в вашем примере.

(редактор: и не забывайте ":" перед последним атрибутом)

0 голосов
/ 01 сентября 2012

Для рельсов 3 используйте nested_has_many_through gem , для 3.1 это, по слухам, работает изначально. (Не смог попробовать себя.)

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