Ruby on Rails form_for pilih bidang dengan kelas

200

Saya memukuli kepala saya di dinding yang satu ini. Saya ingin membuat tag pilih sederhana menggunakan f.selecttag tetapi tidak ada yang berhasil. Saya berikan contoh di bawah ini:

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

Ok, jadi pada dasarnya ini adalah daftar sederhana yang setelah formulir dikirimkan itu menempatkan nilai ke dalam object_field. Itu semua berfungsi, tetapi melihat sumber halaman tag kelas tidak termasuk. Itu tidak melempar kesalahan, itu hanya melompati semuanya.

Jika ada yang punya saran saya akan sangat menghargainya.

Patrick
sumber

Jawaban:

449

Coba dengan cara ini:

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

selecthelper mengambil dua opsi hash, satu untuk pilih, dan yang kedua untuk opsi html. Jadi yang Anda butuhkan adalah memberikan opsi kosong default sebagai param pertama setelah daftar item dan kemudian menambahkan kelas Anda html_options.

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

MBO
sumber
2
Tepat pada uang, terima kasih banyak, itu berhasil! Saya tahu bahwa itu pasti sesuatu yang sederhana dan tentu saja itu.
Patrick
Saya sudah mencoba cara ini di haml tetapi tidak tahu mengapa di "Inspect Element in firebug with element" kelas tidak terlihat di sini adalah kode saya = f.select (: gender, [['Male', true], ['Female ', false]], {}, {: class => "drop",: style => "opacity: 0;"})
Gagan Gami
@GaganGami Saya membuatnya bekerja dengan kode ini: = f.select(:stars, [['Male', true], ['Female', false]], {}, {:class=>"form-control",:style=>"opacity: 0;"}) opacity set ke 0 akan membuat bidang Anda tidak terlihat.
Robert
Adakah yang tahu apa yang harus kita lakukan jika pemilihan f.pada akhirnya dilewati? Kelas sepertinya tidak mengalami kombinasi yang saya coba.
Tashows
Terima kasih atas penjelasannya
Abhilash
21

Anda juga dapat menambahkan opsi prompt seperti ini.

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

Ini bekerja untuk saya

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

Anda dapat melihat di sini: http://apidock.com/rails/ActionView/Helpers/FormBuilder/select

Atau di sini: http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/select

Tag pilih memiliki maksimal 4 agrument, dan agrument terakhir adalah opsi html, artinya Anda dapat meletakkan kelas, mengharuskan, opsi pilihan di sini.

= f.select :sms_category_id, @sms_category_collect, {}, {class: 'form-control', required: true, selected: @set}
ThienSuBS
sumber
selected: @setbekerja untuk saya ketika saya meletakkannya di yang pertama {}.
user1515295