CityとNeighborhoodの2つのモデルを持つアプリがあります。ルートページで、collection_setを使用してすべての都市を表示します
<%= form_tag('/sales/neighborhood', :method => :get) %>`
<%= collection_select(:neighborhood, :city_id, City.all, :id, :name) %>
<%= submit_tag 'Go' %>
次に、次のビューページに、最初のページで選択した都市のIDと一致するcity_idを持つすべての近隣のドロップダウンリストを表示します。私はこの部分が正しいと思います、そして私はこのようなURLを取得するので、都市IDがパラメータで渡されていhttp://localhost:3000/sales/neighborhood?utf8=%E2%9C%93&city%5Bid%5D=1&commit=Go
ます。表示する近隣のリストを取得できません。私はsales#neighborhoodでこれを試しました
<%= form_tag('sales/locations', :method => :get) %>
<%= collection_select(:location, :neighborhood_id, @nbhds.all, :id, :name) %>
<%= submit_tag 'Go' %>
しかし、ドロップダウンボックスには何も表示されません。私はこれを試して、このように選択された都市のIDと一致するcity_idを持つ近隣のリストを取得しました...
<ul>
<% @nbhds.each do |n| %>
<li>
<%= n.name %>,
<%= n.city.name %>
</li>
<% end %>
</ul>
次に、2ページ目のcollection_setから選択されるneighborhood_idに基づいて、アプリケーションに一連の場所を一覧表示させます。誰かが私を正しい方向に向けることができますか?私はちょうどそれを手に入れました、ただ何かが欠けていると思います。
私のモデルは次のようになります。
class City < ActiveRecord::Base
attr_accessible :name, :state
has_many :neighborhoods
end
と:
class Neighborhood < ActiveRecord::Base
attr_accessible :city_id, :name
belongs_to :city
has_many :locations
end
呼び出されているSalesコントローラーアクションは次のとおりです。
def neighborhood
@nbhds = Neighborhood.where(:city_id => params[:id])
end
私の問題はsales#neighborhoodのwhere句か私のビューのどちらかにあると思いますが、レールコンソールのビューからulのコードを入力すると、都市に属するすべての近隣が一覧表示されます。唯一の違いは私が使用したコンソール
nbhds = Neighborhood.where(:city_id => 1)
パラメータを介してアクセスする代わりに
誰かができるなら私はまだこれで助けが必要です