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、:name) を表示したいと考えています。その場所のために。

都市を取得するために私が現在行っていることは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 に答える