Вы можете сделать это при использовании form_for(@model...)
:Rails FormTagHelper отсутствуют важные выберите и collection_select методы
collection_select(:subscription, :duration, ["Some", "Values"], :to_s, :to_s, {:prompt => true})
А выход-то вроде этого:
<select id="subscription_duration" name="subscription[duration]">
<option value="">Please select</option>
<option value="Some">Some</option>
<option value="Values">Values</option>
</select>
Если вы используете форму без модель, у вас нет этого хорошего вспомогательного метода для создания тегов <option>
. Вместо этого, вы должны сделать это:
select_tag("subscription", '<option value="Some">Some</option><option value="Values">Values</option>')
FormHelper и FormOptionsHelper вместе работать над форме оберточной модель, и они имеют select
и collection_select
сделать жизнь легкой. Однако для простого form_tag
(без модели) такого FormOptionsTagHelper нет. FormTagHelper имеет метод select_tag
, но вы должны вручную выписать варианты, которые являются отходами. Кажется, что это где-то было исправлено.
Я мог бы написать свой собственный помощник, чтобы избавиться от написания этих тегов параметров вручную, но это то, что делает FormOptionsHelper#collection_select
... Есть ли эквивалент для форм без моделей?