Grouped Select使用3个型号

时间:2012-09-06 10:00:48

标签: ruby-on-rails ruby-on-rails-3 activerecord

我有以下型号

class Location < ActiveRecord::Base
  has_many :zones
  attr_accessible :name
end

class Zone < ActiveRecord::Base
  belongs_to :location
  has_many :cities
  attr_accessible :name
end

class City < ActiveRecord::Base
  belongs_to :zone
  attr_accessible :name, :zip_code
end

我实际上是在同一个选项中无缝显示所有城市,但由于现在位置数量在增长,我想使用位置名称作为标签显示分组选择,然后显示按字母顺序排列的选项(城市:id, :名称)该地点。

我目前为获取城市而做的是for each location get all zones, for each zone get all cities,然后我将它们推送到实例变量并显示它们。 我已经尝试过使用grouped_collection_select,但我无法弄清楚在这种情况下我怎么能用它,我也尝试过使用grouped_options_for_select,但我认为第一个更合适。

1 个答案:

答案 0 :(得分:0)

尝试

@cities= City.joins(:zone).where(:zones => { :location_id => @location.id })