form_for
似乎忽略了任何“额外”属性,如data-foo
属性或在其第二个参数中class
传递。options
= form_for @user, {:url => 'foo', :class => 'x', 'data-bar' => 'baz' } do |f|
# ...
输出是一个<form>
没有x
类或data-bar
属性的标签。
解决方法是什么?
或者,我如何在FormBuilder
不使用的情况下获取实例form_for
?
form_for
似乎忽略了任何“额外”属性,如data-foo
属性或在其第二个参数中class
传递。options
= form_for @user, {:url => 'foo', :class => 'x', 'data-bar' => 'baz' } do |f|
# ...
输出是一个<form>
没有x
类或data-bar
属性的标签。
解决方法是什么?
或者,我如何在FormBuilder
不使用的情况下获取实例form_for
?
使用: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? %>
我遇到了同样的问题,但很困惑我的应用程序中其他地方的另一种形式工作正常。
我意识到我不小心在另一个form_for中添加了一个form_for,一旦删除它就解决了这个问题。
其次,我应该补充一点,这种语法在 Rails 4.2 中适用于我:
<%= form_for @type, html: {class: "form-horizontal"} do |f| %>
我发现它比此处其他答案的标点符号汤更好(可能基于旧的 Rails 版本)。
在大多数帮助器上,最后一个 arg 是元素的 html 选项的哈希值。
= form_for @user, :html => {:class => 'x', 'data-bar' => 'baz'} %>
我没有运气尝试了上述方法,但找到了解决方案。我正在使用导轨 4.1.6。
这没有用
= form_for @user, :html => {:class => 'x', 'data-bar' => 'baz'} %>
这做到了
= form_for @user, html: {:class => 'x', 'data-bar' => 'baz'} %>
注意与 html 选项的区别,希望这会有所帮助