Ruby on Rails form_for ฟิลด์เลือกด้วยคลาส


200

ฉันตีหัวของฉันกับผนังในนี้ ฉันต้องการสร้างแท็กเลือกอย่างง่ายโดยใช้f.selectแท็ก แต่ไม่มีอะไรทำงาน ฉันใส่ตัวอย่างด้านล่าง:

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

object_fieldตกลงดังนั้นโดยทั่วไปจะเป็นรายการที่เรียบง่ายว่าเมื่อส่งแบบฟอร์มวางค่าลงใน ใช้งานได้ดี แต่การดูแหล่งที่มาของหน้าแท็กคลาสจะไม่รวม มันไม่ได้เกิดข้อผิดพลาด แต่จะข้ามมันทั้งหมดเข้าด้วยกัน

หากใครมีข้อเสนอแนะใด ๆ ฉันจะขอบคุณมันมาก

คำตอบ:


449

ลองด้วยวิธีนี้:

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

selectตัวช่วยใช้การแฮชสองตัวเลือกหนึ่งตัวเลือกสำหรับตัวเลือกและตัวเลือกที่สองสำหรับตัวเลือก html html_optionsดังนั้นสิ่งที่คุณต้องการคือการให้ตัวเลือกที่ว่างเปล่าเริ่มต้นเป็นครั้งแรกหลังจากพระรามรายชื่อของรายการและเพิ่มระดับของคุณไป

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


2
ใช่เลยขอบคุณมาก ๆ นั่นเป็นกลอุบาย! ฉันรู้ว่ามันต้องเป็นอะไรที่ง่ายและแน่นอนมันเป็น
Patrick

ฉันได้ลองวิธีนี้ใน haml แต่ไม่รู้ว่าทำไมใน "ตรวจสอบองค์ประกอบใน firebug กับองค์ประกอบ" ไม่เห็นที่นี่คือรหัสของฉัน = f.select (: เพศ, [['ชาย', จริง], ['หญิง ', false]], {}, {: class => "drop",: style => "opacity: 0;"})
Gagan Gami

@GaganGami ฉันได้รับการทำงานกับรหัสนี้: = f.select(:stars, [['Male', true], ['Female', false]], {}, {:class=>"form-control",:style=>"opacity: 0;"}) ความทึบกำหนดเป็น 0 จะทำให้ฟิลด์ของคุณมองไม่เห็น
Robert

ไม่มีใครรู้ว่าสิ่งที่เราควรทำอย่างไรถ้า f.select กำลังถูกบล็อกในที่สุด? ชั้นดูเหมือนจะไม่ผ่านการรวมกันใด ๆ ที่ฉันได้ลอง
Tashows

ขอบคุณสำหรับคำอธิบาย
Abhilash


12

งานนี้สำหรับฉัน

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

2

คุณสามารถดูได้ที่นี่: http://apidock.com/rails/ActionView/Helpers/FormBuilder/select

หรือที่นี่: http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/select

เลือกแท็กมี maximun 4 agrument และ agrument สุดท้ายคือตัวเลือก html หมายความว่าคุณสามารถใส่คลาสต้องการตัวเลือกการเลือกได้ที่นี่

= f.select :sms_category_id, @sms_category_collect, {}, {class: 'form-control', required: true, selected: @set}

selected: @set{}การทำงานสำหรับฉันเมื่อฉันใส่ไว้ในครั้งแรก
user1515295
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.