как поместить элементы из модели в select_tag - PullRequest
1 голос
/ 19 декабря 2009

У меня есть база данных Страна, заполненная (очевидными) странами. Теперь я хотел бы отобразить их в select_tag в моем представлении (как раскрывающийся список).

я пытался вставить в options_for_select sth как @ show_me_the_countries_mama.each do | f | ('[' + f.printable_name + ']' + ','). в этом списке страны будут указаны в скобках [] и с пробелами в обычном представлении. но он не работает в options_for_select для выпадающего списка.

у меня есть:

'get' do%> Страна:

как я могу решить это? я как-то должен поместить массив опций в options_for_select, и теперь я спрашиваю, как мне это сделать. Должен ли я написать отдельный метод в модели для получения правильного массива стран, а затем вставить их здесь или ..?

спасибо за ваши ответы

Ответы [ 2 ]

4 голосов
/ 19 декабря 2009

Попробуйте использовать тег collection_select:

<%= collection_select :object, :country_id, Country.all, :id, :printable_name %>

Где: id и: printable_name - это методы, передаваемые каждой модели в Country.all, чтобы получить значение и отобразить части опции выбора соответственно.

Вы также можете посмотреть на formtastic для очень простого создания формы.

0 голосов
/ 20 декабря 2009

Вы можете использовать плагин country_select, чтобы вам не приходилось сохранять все это в вашей БД. Если вы пойдете по маршруту Formtastic, вам все равно понадобится плагин, такой как country_select.

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