Ruby on Rails form_для вибору поля з класом


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


2
Прямо на гроші, велике спасибі, що зробив трюк! Я знав, що це повинно бути щось просте, і, звичайно, це було.
Патрік

Я намагався таким чином у haml, але не знаю, чому в класі "Перевірити елемент у firebug з елементом" тут не видно мій код = f.select (: gender, [['Male', true], ['Female ', false]], {}, {: class => "drop",: style => "opacity: 0;"})
Gagan Gami

@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' }) %>

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 має maximun 4 agrument, а останній agrument - це html-варіант, це означає, що ви можете поставити тут клас, вимагати, варіант вибору.

= f.select :sms_category_id, @sms_category_collect, {}, {class: 'form-control', required: true, selected: @set}

selected: @setпрацює для мене, коли я ставлю це першим {}.
користувач1515295
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.