Rails中的f.select不应用Bootstrap

时间:2014-08-13 21:06:42

标签: ruby-on-rails forms twitter-bootstrap

我在Rails表单中有以下select元素:

<%= f.select :customer_type, options_for_select(["Retail","Contractor","Dealer"]), class: "form-control" %>

有谁知道为什么bootstrap类:“form-control”没有渲染?

我猜我的语法错了。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:23)

Per the documentationselect的方法签名是:

select(object, method, choices, options = {}, html_options = {})

html_options:class之类的HTML属性选项应该出现在options之后,但您省略options并放置html_optionschoices之后。试试这个:

<%= f.select :customer_type, options_for_select(["Retail","Contractor","Dealer"]), {}, class: "form-control" %>

P.S。如果你想知道方法签名为什么指定object,但在实际使用中我们从不传递objectmethod总是第一个),这是因为我们实际上并没有直接调用这个方法。当我们在f.select(...)块中调用form_for时,Rails会为我们调用select(f.object, ...)

答案 1 :(得分:0)

更新-如果现在正在使用此功能,则需要将该类放在一个对象中:

<%= f.select :customer_type, options_for_select(["Retail","Contractor","Dealer"]), {}, { class: "form-control" } %>

花一些时间弄清楚它,所以我认为这值得一帖:)