rails, simple_form, как установить выбранный индекс коллекции при загрузке страницы?

Я использую гем simple_form, у меня есть коллекция стран, она отлично работает, когда я выбираю страну, и в обновленной записи будет сохранен идентификатор страны, но когда я пытаюсь отредактировать запись, выбранная страна не выбрана по умолчанию в редактировать форму.

Вот код в форме редактирования:

= f.input :country_id, :collection => all_countries

Разве simple_form не должен отображать выбранную страну из базы данных?


person simo    schedule 02.02.2012    source источник
comment
› Не должен ли simple_form просматривать выбранную страну из базы данных? Так и должно быть, потому что simple_form — это всего лишь оболочка вокруг хелперов rails form_for. Проверьте сгенерированный HTML-код, чтобы убедиться, что в коде нет выбранной опции.   -  person Ineu    schedule 02.02.2012
comment
Я думаю, было бы полезно, если бы в этом вопросе не использовался термин по умолчанию. Когда я вижу это, я думаю, что вы говорите о том, каким был бы выбранный элемент, когда вы ничего не выбрали раньше, а не когда вы что-то сохранили и вернулись на страницу.   -  person cesoid    schedule 18.05.2015
comment
да, я исправил это, но вопрос стал немного длиннее :)   -  person simo    schedule 21.05.2015
comment
См. stackoverflow.com/questions/ 6477942/   -  person mdwpilot    schedule 18.12.2016


Ответы (2)


Вы пытались использовать опцию :selected =>?

:selected => selected_country_id

So,

= f.input :country_id, :collection => all_countries, :selected => selected_country_id

Это будет работать отлично !!!

Ваше здоровье!

person Manish Shrivastava    schedule 02.02.2012
comment
Это не работает, когда для :include_blank установлено значение true. Может это ошибка? - person Remo; 24.07.2013
comment
Идентификатор был важной частью для меня. просто назначение страны, не работает. - person Hendrik; 02.08.2013

Я знаю, что на это был дан ответ, но я пришел сюда в поисках аналогичного решения для набора флажков. Для потомков, вот как вы это делаете:

<%= f.input :country_ids, :as => :check_boxes, :collection => [['USA', :USA], ['Japan', :JPN]], :checked => [:JPN], :include_hidden => false %>

Надеюсь, это поможет кому-то.

person genkilabs    schedule 29.01.2014