Rails button_to - applying css class to button

ezuk picture ezuk · Jan 2, 2013 · Viewed 24.8k times · Source

This is silly, but I just can't figure out how to style the input element created by Rails button_to -- and yes, I've read the docs over and over again and tried the samples.

Here's my ERB code:

 <%= button_to "Claim", action: "claim", idea_id: idea.id, remote: true, class: 'btn btn-small'  %>

And this yield the following HTML:

<form action="/ideas/claim?class=btn+btn-small&amp;idea_id=4&amp;remote=true" class="button_to" method="post">
  <div>
    <input data-remote="true" type="submit" value="Claim">
    <input name="authenticity_token" type="hidden" value="pU3umgqrDx3WbalfNK10c9H5B5N4OzPpohs4bWW8mow=">
  </div>
</form>

Whereas all I want is just input to have class = "btn btn-small".

Help? Thank you!

Answer

Baldrick picture Baldrick · Jan 2, 2013

The signature of the method button_to is

button_to(name = nil, options = nil, html_options = nil, &block)

So use {} to distinguish options and html_options

<%= button_to "Claim", {action: "claim", idea_id: idea.id, remote: true}, {class: 'btn btn-small'} %>