Rails: превращение текстовой формы в поле выбора - PullRequest
1 голос
/ 05 марта 2012

Если честно, я почти нахожу HTML-формы более простыми, чем помощники по Rails.Я пытаюсь превратить эту текстовую форму в поле выбора с параметрами Канада, Соединенные Штаты, Мексика в виде строк

 <p><%= f.label :country %><br />
  <%= f.text_field :country %></p>

Поскольку модель уже представлена ​​в блочной переменной "f", я неуверен, как изменить синтаксис, потому что модель обычно представлена ​​сначала в сложном хэше переменных и опций http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-select

Может кто-нибудь показать мне?

Ответы [ 2 ]

9 голосов
/ 05 марта 2012

Должно работать следующее:

<%= f.select :country, [["Canada", "Canada"], ["Mexico", "Mexico"], ["United States", "United States"]] %>

Подробнее читайте в Руководства по направляющим & Документация API .Как говорит @ ka8751, однако, если у вас есть модель Country, collection_select делает это намного проще:

<%= f.collection_select :country, Country.all, :id, :name %>

, где :id используется для фактического value тега <option> и :name используется для отображения.

Если у вас нет модели Country, вы должны рассмотреть ее ради нормализация базы данных .

0 голосов
/ 05 марта 2012

Я думаю, что вы здесь ошиблись: вы используете text_field вместо select метода. Чтобы сделать поле выбора, я бы порекомендовал вам использовать collection_select метод:

<%= f.collection_select :country, Country.all, :id, :name %>

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

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