嵌套has_many

Nic*_*ilt 3 ruby-on-rails

我正在使用Rails 2.3.5.

Class User < ActiveRecord::Base
  has_many :phones
end

class Phone < ActiveRecord::Base
  has_many :frequency_bands
end
Run Code Online (Sandbox Code Playgroud)

我想为用户获取所有frequency_bands.我知道我可以为用户编写def freq_bands方法,但我想知道是否可以为用户提供has_many freq_bands.通过这种方式,我可以链接呼叫.

我想拥有的是什么

class User < ActiveRecor::Base
   has_many :frequence_bands, :through => phones
end
Run Code Online (Sandbox Code Playgroud)

我认为使用这个插件可以嵌套has_many http://github.com/ianwhite/nested_has_many_through

但是,如果可能的话,我想避免使用另一个插件并仅依靠rails.

sep*_*p2k 7

class User < ActiveRecord::Base
  has_many :phones
  has_many :frequence_bands, :through => :phones
end
Run Code Online (Sandbox Code Playgroud)

工作得很好.如果手机本身也是一个has_many_through关系,你只需要嵌套的has_many_through插件,它不在你的例子中.

(编辑:不要忘记最后一个属性前面的":")