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.

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


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

12

To praca dla mnie

<%= f.select :status, [["Single", "single"], ["Married", "married"], ["Engaged", "engaged"], ["In a Relationship", "relationship"]], {}, {class: "form-control"} %>

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}

selected: @setdziała dla mnie, gdy włożyłem go jako pierwszy {}.
user1515295
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.