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.

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


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

12

Ini bekerja untuk saya

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

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}

selected: @setbekerja untuk saya ketika saya meletakkannya di yang pertama {}.
user1515295
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.