I have the following select element in a Rails form:
<%= f.select :customer_type, options_for_select(["Retail","Contractor","Dealer"]), class: "form-control" %>
Does anyone know why the bootstrap class: "form-control" is not rendering?
I'm guessing my syntax is wrong. Any help is appreciated.
Update - if you're seeing this now using you'll need to put the class in an object:
<%= f.select :customer_type, options_for_select(["Retail","Contractor","Dealer"]), {}, { class: "form-control" } %>
Took me some time to figure it out so I figured it was worth a post :)
Per the documentation, the method signature for select is:
select(object, method, choices, options = {}, html_options = {})
html_options, which is where your HTML attribute options like :class should go, comes after options, but you're omitting options and putting html_options right after choices. Try this instead:
<%= f.select :customer_type, options_for_select(["Retail","Contractor","Dealer"]), {}, class: "form-control" %>
P.S. If you're wondering why the method signature specifies object, but in actual use we never pass object (method is always first), it's because we're not actually calling this method directly. When we call f.select(...) inside a form_for block, Rails calls select(f.object, ...) for us.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With