Ruby on Rails form_for select field with class

200

Na tym uderzam głową o ścianę. Chcę utworzyć prosty tag zaznaczania przy użyciu f.selecttagu, ale nic, co robię, nie działa. Podam przykład poniżej:

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

Ok, więc w zasadzie jest to prosta lista, która po przesłaniu formularza umieszcza wartość w object_field. To wszystko działa, ale przeglądanie źródła strony nie obejmuje tagu klasy. Nie zgłasza błędu, po prostu pomija to wszystko razem.

Jeśli ktoś ma jakieś sugestie, byłbym bardzo wdzięczny.

Patrick
źródło

Odpowiedzi:

449

Wypróbuj w ten sposób:

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

selectpomocnik pobiera dwa skróty opcji, jeden dla wyboru, a drugi dla opcji HTML. Wystarczy więc podać domyślne puste opcje jako pierwszy param po liście przedmiotów, a następnie dodać swoją klasę html_options.

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

MBO
źródło
2
Jeśli chodzi o pieniądze, dziękuję bardzo, że to załatwiło sprawę! Wiedziałem, że to musi być coś prostego i oczywiście tak było.
Patrick
Próbowałem tego w Haml, ale nie wiem, dlaczego w klasie „Inspect Element in firebug with element” nie widać tutaj mojego kodu = f.select (: gender, [['Male', true], ['Female ', false]], {}, {: class => „drop”,: style => „krycie: 0;"})
Gagan Gami
@GaganGami Mam go do pracy z tym kodem: = f.select(:stars, [['Male', true], ['Female', false]], {}, {:class=>"form-control",:style=>"opacity: 0;"}) nieprzezroczystość ustawiona na 0 spowoduje, że twoje pole będzie niewidoczne.
Robert,
Czy ktoś wie, co powinniśmy zrobić, jeśli f.select zostanie ostatecznie przekazany blok? Klasa wydaje się nie przechodzić przez żadną kombinację, której próbowałem.
Tashows
Dziękuję za wyjaśnienie
Abhilash
21

Możesz również dodać opcję zachęty taką jak ta.

<%= f.select(:object_field, ['Item 1', 'Item 2'], {include_blank: "Select something"}, { :class => 'my_style_class' }) %>
Paing Soe Thaw
źródło
12

To praca dla mnie

<%= f.select :status, [["Single", "single"], ["Married", "married"], ["Engaged", "engaged"], ["In a Relationship", "relationship"]], {}, {class: "form-control"} %>
Alex Onozor
źródło
2

Możesz zobaczyć tutaj: http://apidock.com/rails/ActionView/Helpers/FormBuilder/select

Lub tutaj: http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/select

Tag znacznika ma agrotument maximun 4, a ostatnim agrumentem jest opcja HTML, co oznacza, że ​​możesz tutaj umieścić klasę, wymaganie i opcję wyboru.

= f.select :sms_category_id, @sms_category_collect, {}, {class: 'form-control', required: true, selected: @set}
ThienSuBS
źródło
selected: @setdziała dla mnie, gdy włożyłem go jako pierwszy {}.
user1515295