例えば、hogeコントローラーのnewアクションを実行するボタンを作成し、bootstrapのスタイルを適用させたい場合、最初は
button_to "新規作成", controller: 'hoge', action: 'new', class: "btn btn-default"
上のコードで行けるかと思ったけど、button_toはmethodとしてpostをデフォルトで指定するらしい。かといって、
button_to "新規作成", controller: 'hoge', action: 'new', method: :get, class: "btn btn-default"
こんな感じでmethodを指定してもgetを投げてはくれない。
仕方がないのでlink_toで代用し、色々と試行錯誤した結果、下のようなコードで落ち着いた。
link_to "新規作成", {controller: 'hoge', action: 'new'}, {class: "btn btn-default", role: "button"}
と、思ったらbutton_toでも普通にできました・・・
button_to "新規作成", {controller: 'hoge', action: 'new'}, {method: :get, class: "btn btn-default"}
オプション指定を明示すればよかっただけなのね・・・次からは気を付けたいです。