У меня есть динамический раскрывающийся список в пользовательской форме, которая содержит города в зависимости от выбранного состояния.Форма отлично работает при создании записи, но при редактировании пользователя только штат заполняется существующим значением - в идеале форма должна быть заполнена регионом и городом пользователя (с указанием городов штата в раскрывающемся списке).
В форме у меня есть:
<%= 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])
КогдаЯ редактирую форму, раскрывающийся список городов пуст, но если я изменю состояние, оно будет правильно заполнено городами.
Спасибо!
edit:
не уверен, что это актуально, но в файле rout.rb у меня есть совпадение 'users / update_city_select /: id',: controller => 'users',: action => 'update_city_select'