Ruby on Rails form_for выберите поле с классом

200

Я бью головой об стену на этом. Я хочу сделать простой тег выбора, используя этот f.selectтег, но ничего, что я делаю, не работает. Я поставил пример ниже:

<%= f.select(:object_field, ['Item 1', 'Item 2', 'Item 3', 'Item 4', 'Item 4'], :class => 'my_style_class')%>

Итак, в основном это простой список, который после отправки формы помещает значение в object_field. Это все работает, но при просмотре исходного кода тег класса не включен. Он не выдает ошибку, он просто пропускает все это вместе.

Если у кого-то есть какие-либо предложения, я был бы очень признателен.

Патрик
источник

Ответы:

449

Попробуйте так:

<%= f.select(:object_field, ['Item 1', ...], {}, { :class => 'my_style_class' }) %>

selectхелпер принимает два хэша опций, один для выбора, а второй для опций HTML. Поэтому все, что вам нужно, это указать пустые параметры по умолчанию в качестве первого параметра после списка элементов, а затем добавить свой класс html_options.

http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-select

MBO
источник
2
Прямо на деньги, большое спасибо, что сделали свое дело! Я знал, что это должно быть что-то простое и, конечно, это было.
Патрик
Я пробовал этот способ в haml, но не знаю, почему в классе «Проверять элемент в firebug with element» не виден мой код = f.select (: пол, [['Male', true], ['Female ', false]], {}, {: class => "drop",: style => "opacity: 0;"})
Гаган Гами
@GaganGami Я получил его для работы с этим кодом: = f.select(:stars, [['Male', true], ['Female', false]], {}, {:class=>"form-control",:style=>"opacity: 0;"}) непрозрачность, установленная на 0, сделает ваше поле невидимым.
Роберт
Кто-нибудь знает, что мы должны делать, если f.select передается в конце блока? Класс, кажется, не выдерживает ни одной комбинации, которую я пробовал.
Tashows
Спасибо за объяснение
Абхилаш
21

Вы также можете добавить опцию подсказки, как это.

<%= f.select(:object_field, ['Item 1', 'Item 2'], {include_blank: "Select something"}, { :class => 'my_style_class' }) %>
Paing Soe Thaw
источник
12

Это работа для меня

<%= f.select :status, [["Single", "single"], ["Married", "married"], ["Engaged", "engaged"], ["In a Relationship", "relationship"]], {}, {class: "form-control"} %>
Алекс Онозор
источник
2

Вы можете увидеть здесь: http://apidock.com/rails/ActionView/Helpers/FormBuilder/select

Или здесь: http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/select

Тэг select имеет максимальный 4-й множитель, а последний - html-опцию, это означает, что вы можете указать здесь класс, требовать, опцию выбора.

= f.select :sms_category_id, @sms_category_collect, {}, {class: 'form-control', required: true, selected: @set}
ThienSuBS
источник
selected: @setработает для меня, когда я положил его в первую очередь {}.
user1515295