2011-09-12 32 views
2

我在包含基於選定狀態的城市的用戶表單中有一個動態下拉列表。創建記錄時,表單完美工作,但編輯用戶時,只有狀態填充了現有值 - 理想情況下,表單將填充用戶的狀態和城市(狀態的城市填充在下拉列表中。未在編輯表單中預填充的Rails動態下拉列表

在表單中,我有:

<%= 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中我有 匹配 '用戶/ update_city_select /:身份證',:控制器=> '用戶',:動作=> 'update_city_select'

回答

0

也許控制器的edit方法未填充@cities

試着在new上加上你所擁有的一條線,如果不行的話把<%= raise cities.inspect %>放在局部去看內容。

相關問題