我有一个应用程序,它有 2 个模型,City 和 Neighborhood。在根页面上,我使用 collection_set 显示所有城市
<%= form_tag('/sales/neighborhood', :method => :get) %>`
<%= collection_select(:neighborhood, :city_id, City.all, :id, :name) %>
<%= submit_tag 'Go' %>
然后,我想在下面的视图页面中包含一个包含与第一页上选择的城市 id 匹配的 city_id 的所有社区的下拉列表。我认为我的这部分是正确的,并且城市 ID 正在参数中传递,因为我得到了这样的 url http://localhost:3000/sales/neighborhood?utf8=%E2%9C%93&city%5Bid%5D=1&commit=Go
。我只是无法获得要显示的社区列表。我在销售#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>
然后,我希望应用程序根据从第二页的 collection_set 中选择的 neighbor_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
这是调用的销售控制器操作:
def neighborhood
@nbhds = Neighborhood.where(:city_id => params[:id])
end
我认为我的问题是在 sales#neighborhood 中的 where 子句中或在我看来,但我将 ul 的代码从视图中的 rails 控制台中列出,它列出了属于该城市的所有社区,唯一的区别在于我使用的控制台
nbhds = Neighborhood.where(:city_id => 1)
而不是通过参数访问它
如果有人可以,我仍然需要帮助