Не могу установить: selected => для выпадающего списка

0

Пользователь, который уже сделал опрос ранее, получает форму для заполнения своего адреса. Пользователь уже предоставил государство, в котором они живут, в момент, когда они заполнили опрос.

Как любезность, я хотел бы предварительно выбрать раскрывающийся список с выбранным государством. Я использую массив us_states, чтобы предварительно загрузить раскрывающийся список. Сокращенное имя состояния сохраняется в db в модели User. Следующий выбор не позволяет предварительно выбрать состояние, и состояние, которое появляется в раскрывающемся списке, является первым состоянием в массиве: "Алабама". Сгенерированный HTML ниже.

<%= f.select :state, options_for_select(us_states), :selected => @user.state %>


<select id="pub_state" name="pub[state]"><option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
...
</select>



 def us_states
      [
        ['Alabama', 'AL'],
        ['Alaska', 'AK'],
        ['Arizona', 'AZ'],
      ...
      ]
   end
Теги:
ruby-on-rails-4

1 ответ

1
Лучший ответ

Попробуйте передать выбранный параметр методу options_for_select:

options_for_select(us_states, @user.state)
  • 0
    Это сработало! Но почему не: выбранный сделать трюк?
  • 0
    Из того, что я вижу в исходном коде, options_for_select генерирует сами теги HTML, включая выбранный атрибут. Я бы сказал, что если вы удалите options_for_select и передадите параметры напрямую, вы также сможете использовать атрибут: selected.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню