После того, как страница будет отправлена, отобразите выбранное значение в поле выбора ruby ​​on rails - PullRequest
2 голосов
/ 19 февраля 2010

У меня есть следующее, чтобы отобразить поле выбора со странами в нем:

@countries = {'United States' => 'US', 'France' => 'FR'} 
<%= select_tag 'countries', 
            options_for_select(@countries.to_a) %>

работает нормально. Теперь в случаях, когда у меня возникает ошибка после отправки формы, все значения в текстовом поле, которые были введены ранее, отображаются снова (поэтому нет необходимости вводить их повторно), но поле выбора сбрасывается до значения по умолчанию.

Любые идеи, какой параметр следует включить, чтобы при возникновении ошибки значение из поля выбора оставалось.

1 Ответ

1 голос
/ 19 февраля 2010

Где вы храните это значение? Если он назначен какой-либо модели, то ваша форма должна выглядеть следующим образом:

<% form_for @my_object do |f| %>
  # some fields
  <%= f.select 'country', options_for_select(@countries.to_a) %>
  # ...
<% end %>

Где country должно быть именем поля, в котором вы храните страну в вашей модели.

Если вы хотите сделать это с select_tag (как в вашем примере), тогда вам следует передать options_for_select другой параметр:

select_tag 'countries', options_for_select(@countries.to_a, params[:countries])

Где params[:countries] должен хранить выбранную страну.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...