繁体   English   中英

Rails动态下拉列表未预先填写在编辑表单中

[英]Rails dynamic drop-down not pre-populated in edit form

我在用户表单中有一个动态下拉列表,其中包含基于所选州的城市。 表单在创建记录时可以完美地工作,但是在编辑用户时,仅使用现有值填充状态-理想情况下,表单将使用用户所在的州和城市填充(在下拉列表中填充州的城市)。

在表格中,我有:

<%= f.input :state_id, :collection => @states, :prompt => "Pick Your State" %>
</div>    
<div id="usercities">
  <%= render :partial => 'cities', :locals => { :cities => @cities, :user => form } %>
</div>

在部分我有:

<%= simple_fields_for :user do |fields| %>
  <% if cities.blank? %>
    <%= fields.input :city_id, :collection => cities, :prompt => "Pick Your State" %>
  <% else %>
<%= fields.input :city_id, :collection => cities, :prompt => "Pick Your City" %>
  <% end %>
<% end %>

在控制器中

    @states = State.where(:active => true)
    @cities = City.where(:active => true, :state_id => [@user.state_id])

当我编辑表单时,城市下拉列表为空白,但是如果我更改状态,它将正确填充城市。

谢谢!

编辑:

不知道它是否相关,但是在routes.rb中我匹配了'users / update_city_select /:id',:controller =>'users',:action =>'update_city_select'

也许控制器的edit方法没有填充@cities

尝试在new上添加行,如果不行,则在部分中添加<%= raise cities.inspect %>以查看内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM