Динамический раскрывающийся список Rails предварительно не заполняется в форме редактирования - PullRequest
2 голосов
/ 12 сентября 2011

У меня есть динамический раскрывающийся список в пользовательской форме, которая содержит города в зависимости от выбранного состояния.Форма отлично работает при создании записи, но при редактировании пользователя только штат заполняется существующим значением - в идеале форма должна быть заполнена регионом и городом пользователя (с указанием городов штата в раскрывающемся списке).

В форме у меня есть:

<%= 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'

1 Ответ

0 голосов
/ 31 июля 2013

Возможно, метод edit контроллера не заполняет @cities.

Попробуйте добавить строку, имеющуюся у вас на new, и, если не работает, вставьте <%= raise cities.inspect %> в частичноечтобы увидеть содержимое.

...