[英]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.