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

Ala*_* H. 84 ruby-on-rails ruby-on-rails-3

form_for似乎忽略任何'额外'属性,如data-foo属性或class传递为options第二个参数.

= form_for @user, {:url => 'foo', :class => 'x', 'data-bar' => 'baz' } do |f|
  # ...
Run Code Online (Sandbox Code Playgroud)

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

有什么问题?

或者,如何在FormBuilder不使用的情况下获取实例form_for

Mur*_*foX 181

使用:html哈希:

= form_for @user, :html => {:class => 'x', 'data-bar' => 'baz'} do |f|
Run Code Online (Sandbox Code Playgroud)

要么

= form_for @user, :html => {class: 'x', data: { bar: 'baz' } } do |f|
Run Code Online (Sandbox Code Playgroud)


zer*_*ool 11

Rails 4.0.3,Ruby 2.1.0p0 - >这对我有用=>

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


MSC*_*MSC 5

我遇到了同样的问题,但很困惑我的应用程序中其他地方的另一种表单工作正常。

我意识到,我不小心加了的form_for另一个内部的form_for曾经除去固化的问题。

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

<%= form_for @type, html: {class: "form-horizontal"} do |f| %>
Run Code Online (Sandbox Code Playgroud)

我发现它比这里其他答案的标点符号汤更可取(它们可能基于较旧的 Rails 版本)。