我正在创建一个级联下拉列表,用于在我的视图中选择城市,因此我需要创建第一个选择状态,第二个将通过AJAX动态填充。
如果我的视图模型中没有state_id字段(仅限city_id),我该如何创建第一个?
加载编辑视图时,即使没有此值,如何加载相同的下拉列表并选择正确的选项?
为了更好地理解我拥有的和我需要的东西,这里有更多的信息。
我有3张桌子:
国 ID, 名称, 缩写
城市 ID, 名称, STATE_ID
患者 ID, 名称, city_id
想法是在编辑或创建新患者时自动加载状态下拉列表,并在状态下拉列表中选择项目时加载城市下拉列表。
我尝试在我看来使用此代码:
<div class="row">
<div class="col-md-4">
<%= f.input :state, collection: @states %>
</div>
<div class="col-md-5">
<%= f.input :city_id %>
</div>
</div>
但是,:状态不存在,因此导致错误。
答案 0 :(得分:1)
你总是可以把它作为一个单独的选择字段绑定到一个jQuery事件,它保存状态数据,如下所示:
#Form
<select id="state_select">
<option value="IL">Illinois</option>
<option value="CA">California</option>
</select>
<%= label :city %>
<%= select :city, options_for_select([]) %>
#In Script
$("#state_select").on("change", function(ev) {
//Set the city based on the state and append it to / overwrite the empty array in cities
})