Як встановити параметри HTML для collection_select у Rails?


82

Здається, я не можу знайти синтаксис для додавання класу до тегу select, згенерованого Rails collection_select. Якась допомога?


1
Чи можете ви навести приклад того, що ви хочете зробити? Я не розумію вашого запитання.
klew

Звичайно ... Я використовую rails '<% = f.collection_select ...%>, щоб генерувати: <select ...> ... </select> Я просто хочу, щоб це було: <select class = "foo "...> ... </select>
tybro0103

Відповіді:


180

Багато помічників Rails беруть кілька аргументів хешу. Перший - це, як правило, параметри управління самим помічником, а другий - html_options, де ви вказуєте власні ідентифікатори, класи тощо.

Визначення методу виглядає так:

collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})

Ви помітите множину '= {}' у списку параметрів. Щоб використовувати це, перший набір параметрів, який ви вказали, насправді повинен бути укладений у фігурні дужки:

collection_select(:user, :title, UserTitle.all, :id, :name, {:prompt=>true}, {:class=>'my-custom-class'})

Якщо крім класу html у вас немає жодних параметрів, просто введіть порожній заповнювач хешу:

collection_select(:user, :title, UserTitle.all, :id, :name, {}, {:class=>'my-custom-class'})

Додаткова документація щодо API доступна за адресою: http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/collection_select


Ах, мені слід було прочитати документацію трохи
уважніше

1
Ось розширення цієї відповіді, що показує, як змінити стиль .css та використовувати jQuery <%= collection_select(:question , :text, Question.all , :id, :text, {:prompt => 'Select Question...'}, {:class=>'input', :name=>'normalSelect', :id=>'normalSelect', :style=>'width:50%', :onchange=>"$('#accordion').accordion('activate',2);$('#blind').show('blind', 500)"}) %>
onchange

Дрю, приємна відповідь. Видалення всіх моїх сумнівів щодо collection_select.
Swapnil Chincholkar

Досить точна ваша відповідь. Дуже дякую.
Francisco Quintero

3
Дякую за чітке пояснення. Це одна з хитрощів Rails, яка погано задокументована в RailsDocs.
лакостенікодер

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