Rails:如何将模型的has_many对象检索为集合?

dav*_*hab 1 ruby-on-rails ruby-on-rails-3.1

假设我有类似的东西

Country has_many :cities
Run Code Online (Sandbox Code Playgroud)

并且模型City具有属性council_id.只有一个实例Country,检索包含所有相关的集合的最佳方法是什么Councils?

我知道这可以很容易地将Country实例传递给某个方法并迭代council_ids但我想知道是否有更优雅的方式?

谢谢

Fre*_*ung 5

如果城市有

belongs_to :country
belongs_to :council
Run Code Online (Sandbox Code Playgroud)

那么国家可以拥有

has_many :cities
has_many :councils, :through => :cities
Run Code Online (Sandbox Code Playgroud)

然后你就可以做到some_country.councils.在幕后,这构造了一个连接查询来加载相关的委员会.如果一个城市有许多议会,这仍然有用 - has_many :through可以解决这个问题