我在Rails表单中有以下select元素:
<%= f.select :customer_type, options_for_select(["Retail","Contractor","Dealer"]), class: "form-control" %>
有谁知道为什么bootstrap类:“form-control”没有渲染?
我猜我的语法错了。任何帮助表示赞赏。
答案 0 :(得分:23)
Per the documentation,select
的方法签名是:
select(object, method, choices, options = {}, html_options = {})
html_options
,:class
之类的HTML属性选项应该出现在options
之后,但您省略options
并放置html_options
在choices
之后。试试这个:
<%= f.select :customer_type, options_for_select(["Retail","Contractor","Dealer"]), {}, class: "form-control" %>
P.S。如果你想知道方法签名为什么指定object
,但在实际使用中我们从不传递object
(method
总是第一个),这是因为我们实际上并没有直接调用这个方法。当我们在f.select(...)
块中调用form_for
时,Rails会为我们调用select(f.object, ...)
。
答案 1 :(得分:0)
更新-如果现在正在使用此功能,则需要将该类放在一个对象中:
<%= f.select :customer_type, options_for_select(["Retail","Contractor","Dealer"]), {}, { class: "form-control" } %>
花一些时间弄清楚它,所以我认为这值得一帖:)