使用Rails的form_for,但在<form>元素上设置自定义类,属性?

form_for似乎忽略任何“额外的”属性,比如在第二个参数中作为options传递的data-foo属性或class

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

输出是一个没有x类或data-bar属性的<form>标记。

什么是修复?

或者,我怎样才能不使用form_for抓住一个FormBuilder实例?

使用:html哈希:

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

要么

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

Rails 4.0.3,Ruby 2.1.0p0 – >这对我工作=>

 <%= form_for(@contact, :html => {:class => 'form_height'}) do |f| %><% if @contact.errors.any? %> 

我有同样的问题,但感到困惑的是,在我的应用程序的其他forms工作正常。

我意识到,我不小心增加了form_for内另一个form_for曾经删除了治愈的问题。

其次,我应该补充一点,在Rails 4.2中,这个语法适用于我:

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

我发现这里的其他答案的标点符号更可取(这可能是基于较老的Rails版本)。

主要是助手,最后一个参数是元素的html选项的散列。

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

您也可以在文档ActionsView :: Helpers :: FormHelper中查看其他选项

我没有运气,但我find了解决scheme。 我正在使用rails 4.1.6。

这没有奏效

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

这样做了

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

注意与html选项的区别,希望这有助于