我有3个下拉列表的视图。例如,我有国家,州和城市,在视图中,当用户选择Country = US时,然后在State下拉列表中,它应填充仅美国州的列表,并且当选择州时,下拉列表仅需要调出该州的城市。我的数据库设置正确(State有州名和country_id字段,City有城市名和state_id)
我在我的视图中实现了以下内容,但无论用户选择如何,这都会为我带来所有记录。
<div class="field">
<%= f.label :sector, "Sector" %>
<%= f.collection_select :sector_id, Sector.all, :id, :nombre, :prompt => false %>
</div>
<div class="field">
<%= f.label :municipio %>
<%= f.collection_select :municipio_id, Municipio.all, :id, :nombre, :prompt => false %>
</div>
<div class="field">
<%= f.label :provincia %>
<%= f.collection_select :provincia_id, Provincia.all, :id, :nombre, :prompt => false %>
</div>
我如何让彼此的这些下拉依赖者?
答案 0 :(得分:0)
尝试尝试的一件事就是添加一个选项,使其成为:
<%= f.label :state%>
<%= f.collection_select :country, :state_id, State.all, :id, :nombre, :prompt => false %>
</div>
<div class="field">
<%= f.label :city%>
<%= f.collection_select :state, :city_id, City.all, :id, :nombre, :prompt => false %>
</div>
collection_select中的前三个选项是object,method,collection。所以这就像说,获取属于您的国家实例的状态ID并返回State.all返回的集合中的那些。
确保您的模型设置正确:
class State < ActiveRecord::Base
belongs_to :country
end
class City < ActiveRecord::Base
belongs_to :state
end