0

我有以下型号

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 但我认为第一个更合适。

4

1 回答 1

0

尝试

@cities= City.joins(:zone).where(:zones => { :location_id => @location.id })
于 2012-09-06T11:23:48.253 回答