如何在 Ruby on Rails 中向 select_tag 添加一个类
Posted
技术标签:
【中文标题】如何在 Ruby on Rails 中向 select_tag 添加一个类【英文标题】:How to add a class to select_tag in Ruby on Rails 【发布时间】:2014-02-07 10:43:32 【问题描述】:难以添加类标签:
<div class="field">
<%= label_tag(:school_or_org, "Are you a school or a non-profit organization?") %>
<%= select_tag(:school_or_org, options_for_select([ ['school', "school"], ['non-profit', "non-profit"] ])) %>
</div>
这是我尝试过的,除其他外:
<div class="field">
<%= label_tag(:school_or_org, "Are you a school or a non-profit organization?") %>
<%= select_tag(:school_or_org, options_for_select([ ['school', "school"], ['non-profit', "non-profit"], :class => 'form-control' ])) %>
</div>
当我通过 firefbug 检查它时,我没有看到类信息,所以很明显它没有被添加。
如何添加它以使其显示在表单中?
谢谢
编辑一个
你的意思是这样的:
<%= select_tag(:school_or_org, options_for_select([ ['school', "school"], ['non-profit', "non-profit"]] ), :class => 'form-control') %>
没有用。
仅供参考,这就是我试图让选择框看起来像:http://getbootstrap.com/css/#forms(查看选择部分)。这就是我从中获得“表单控制”的地方。
【问题讨论】:
您希望将类添加到选择框还是选择选项中? @patrickmcgraw,我想现在选择框。 【参考方案1】:如果您使用the select
helper,则需要一个空选项哈希,后跟您的 html 选项,如下所示:
select(object, method, choices, options = , html_options = )
用你的例子,看起来像这样:
<%= select(:school_or_org, options_for_select([ ['school', "school"], ['non-profit', "non-profit"]] ), , :class => 'form-control') %>
如果您使用the select_tag
helper,您可以在末尾添加哈希作为选项哈希的一部分:
select_tag(name, option_tags = nil, options = )
这是可行的,因为任何无法识别的选项都会作为标准 HTML 属性传入。
用你的例子,看起来像这样:
<%= select_tag(:school_or_org, options_for_select([ ['school', "school"], ['non-profit', "non-profit"]] ), :class => 'form-control') %>
【讨论】:
这是我复制您的答案时得到的结果:“参数数量错误(4 对 3)” .... 我没有修改任何其他内容。为什么会给出这个答案? 抱歉,我一直在考虑select
助手,而不是 select_tag
助手。我已经修改了我的答案,并解释了差异(附有参考资料)。现在其中任何一个都应该可以工作了。【参考方案2】:
如果您希望选择框本身上的类,那么您会在此处发生括号嵌套错误。 :class => 'form-control'
sn-p 需要在 options_for_select
调用的括号之外。
如果您希望将类应用于选项,则每个数组元素都需要像这样的类声明:['non-profit', "non-profit", :class => 'form-control']
【讨论】:
我已经用我的做法更新了我的帖子。它仍然没有工作。我做错了什么?以上是关于如何在 Ruby on Rails 中向 select_tag 添加一个类的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ruby on rails 中访问 rails 助手和嵌入资产 javascript 文件中的 ruby?