我有以下型号
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,但我认为第一个更合适。
答案 0 :(得分:0)
尝试
@cities= City.joins(:zone).where(:zones => { :location_id => @location.id })