100

form_for属性のような「余分な」属性を無視するかdata-foo、2番目の引数のようにclass渡されるようです。options

= form_for @user, {:url => 'foo', :class => 'x', 'data-bar' => 'baz' } do |f|
  # ...

出力は、クラスまたは属性<form>のないタグです。xdata-bar

修正は何ですか?

FormBuilderまたは、使用せずにインスタンスを取得するにはどうすればよいform_forですか?

4

5 に答える 5

212

:htmlハッシュ を使用します。

= form_for @user, :html => {:class => 'x', 'data-bar' => 'baz'} do |f|

または

= form_for @user, html: {class: 'x', data: { bar: 'baz' } } do |f|
于 2012-10-30T17:44:48.860 に答える
11

Rails 4.0.3、Ruby2.1.0p0->これは私のために働いた=>

<%= form_for(@contact, :html => {:class => 'form_height'}) do |f| %><% if     @contact.errors.any? %>
于 2014-08-12T21:32:46.777 に答える
5

同じ問題が発生しましたが、アプリの他の場所で別のフォームが正常に機能していることに戸惑いました。

誤って別のform_forの中にform_forを追加してしまったことに気づきましたが、一度削除すると問題が解決しました。

次に、この構文がRails4.2で機能することを追加する必要があります。

<%= form_for @type, html: {class: "form-horizontal"} do |f| %>

ここにある他の回答の句読点スープよりも好ましいと思います(おそらく古いRailsバージョンに基づいていました)。

于 2016-06-28T07:50:13.837 に答える
1

ほとんどのヘルパーでは、最後の引数は要素のhtmlオプションのハッシュです。

= form_for @user, :html => {:class => 'x', 'data-bar' => 'baz'} %>

ドキュメントActionsView::Helpers::FormHelperで他の選択肢を確認することもできます

于 2012-10-30T17:51:22.073 に答える
1

私は運が悪かったので上記を試しましたが、解決策を見つけました。レール4.1.6を使用しています。

これはうまくいきませんでした

= form_for @user, :html => {:class => 'x', 'data-bar' => 'baz'} %>

これはしました

= form_for @user, html: {:class => 'x', 'data-bar' => 'baz'} %>

htmlオプションとの違いに注意してください。これがお役に立てば幸いです。

于 2014-10-28T22:40:29.070 に答える