为不在模型

时间:2016-04-10 17:08:02

标签: ruby-on-rails-4 simple-form

我正在创建一个级联下拉列表,用于在我的视图中选择城市,因此我需要创建第一个选择状态,第二个将通过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>

但是,:状态不存在,因此导致错误。

1 个答案:

答案 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       

})