2012-02-15 4 views
9

が、私はRailsの3生成されたフォームにクラスを追加するための正しいbutton_to構文は何ですか? <a href="http://apidock.com/rails/v3.1.0/ActionView/Helpers/UrlHelper/button_to">docs</a>フォームにクラスを適用する<code>:form_class</code>を使用するを教えて

:classオプションでbutton_toによって生成されたフォームにクラスを適用しようとしていることはsubmitボタンのクラスを設定します。

など。

<%= button_to 'x', user_contact_path(@user, contact), :method => :delete, :form_class => "delete" %> 

これは、ボタン要素に属性form_class="delete"を追加するだけです。私は:html_optionsなどを使用してさまざまな組み合わせを試みました。

誰でもこの方法を知っていますか?

答えて

15

この方法は私にとって完璧に機能します。私が行うことができる午前:

<%= button_to "Hello", root_url, :method => :get, :form_class => "my_class" %> 

上記のことは、次を生成します。

<form action="http://localhost:3000/" class="my_class" method="get"> 
    <div><input type="submit" value="Hello"></div> 
</form> 

しかし、これはあなたの質問のポイントにリンクとしてのRails 3.1であり、同じはRailsの3.0で動作しません.xはform class is hard coded以降です。

url_helperコードから:

("<form method=\"#{form_method}\" action=\"#{html_escape(url)}\" 
    #{"data-remote=\"true\"" if remote} class=\"button_to\"><div>" + 
    method_tag + tag("input", html_options) + request_token_tag + 
    "</div></form>" 
).html_safe 
+1

ありがとうSyed、かなり正しい - 私は3.0.7を使っているので、それは難しいと思います。 – digitalWestie

+2

私は今日前にこれを実際に知りませんでした。答えをありがとう! –

0

<%= button_to 'x', user_contact_path(@user, contact), {:method => :delete, :form_class => "delete"} %> 

で試してみてくださいこれはoptionsハッシュの一部の代わりに、html_optionsハッシュする:form_class => "delete"を強制します。

+0

HMN、この構文は私のために動作しません。私のバージョンのレールとは関係があります。 – digitalWestie

関連する問題