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.