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
?
Answers:
在大多数辅助对象上,最后一个arg是该元素的html选项的哈希。
= form_for @user, :html => {:class => 'x', 'data-bar' => 'baz'} %>
您也可以在文档ActionsView :: Helpers :: FormHelper中检查其他替代方法
我没有运气尝试了上面的方法,但是找到了解决方案。我正在使用Rails 4.1.6。
这没用
= form_for @user, :html => {:class => 'x', 'data-bar' => 'baz'} %>
这确实
= form_for @user, html: {:class => 'x', 'data-bar' => 'baz'} %>
注意html选项的不同之处,希望对您有所帮助
= form_for(:user, :url => login_path, html: {:class => 'login_form'}) do |f| %>
这是我的代码应用类的唯一方法,否则它将被忽略。
= form_for @user, :html => {'class' => 'x'} do |f|
。class
应该是符号而不是字符串。