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。一切正常,但是不包含查看页面源代码的class标签。它不会引发错误,只会一起跳过所有错误。

如果有人有任何建议,我将不胜感激。

Answers:


449

尝试这种方式:

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

selecthelper采用两个选项哈希,一个用于选择,第二个用于html选项。因此,您需要做的就是给默认的空选项作为项目列表之后的第一个参数,然后将类添加到中html_options

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


2
就钱而言,非常感谢,这就是窍门!我知道这一定很简单,当然是。
Patrick

我曾在haml中尝试过这种方法,但不知道为什么在“用元素检查萤火虫中的元素”类中找不到我的代码= f.select(:gender,[['Male',true],['Female ',false]],{},{:class =>“ drop”,:style =>“ opacity:0;”})
Gagan Gami 2014年

@GaganGami我可以使用此代码: = f.select(:stars, [['Male', true], ['Female', false]], {}, {:class=>"form-control",:style=>"opacity: 0;"}) 不透明度设置为0将使您的字段不可见。
罗伯特

有谁知道如果f.select最后被传递一个块,我们应该怎么做?该课程似乎没有经历我尝试过的任何组合。
Tashows,2016年

谢谢您的解释
-Abhilash

21

您还可以像这样添加提示选项。

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

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

Select标签有4个最大标注,最后一个是html选项,这意味着您可以在此处放置class,require,selection选项。

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

selected: @set当我一开始就为我工作{}
user1515295 '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.