为什么form_for类添加仅在我明确声明提交标签时才起作用?

时间:2015-10-20 13:20:36

标签: ruby-on-rails form-for

我正在尝试在这个rails form_for中设置表单元素的样式但是不断遇到语法错误,我尝试的任何东西似乎都在工作:

_form.html.erb:

<%= form_for(@todo_list) do |f| %>
  <div class="form-group">
    <%= f.label :title %><br>
    <%= f.text_field :title %>
  </div>
  <div class="form-group">
    <%= f.label :description %><br>
    <%= f.text_area :description %>
  </div>
  <div>
    <%= f.submit, html: {class: "btn btn-default btn-xs"} %>
  </div>
<% end %>

这只是出现了这个错误:

  

_form.html.erb:23:语法错误,意外的tLABEL,期待&#39; =&#39; ... buffer.append =(f.submit,html:{class:&#34; btn btn-default btn ......

class=class:html=>的各种变体,传入html => {:class => "form-horizontal"}等等,所有这些似乎只会产生相同的语法错误。

唯一的例外是当我明确地将标签应用于提交操作时,例如;

<%= f.submit 'Save', class: "btn btn-default btn-xs" %>

然后类成功添加,我的引导样式工作。然而,这既没有找到主要问题也没有解决它,因为我不能使用rails&#39; form_for动态命名提交操作。

我应用于div的类似乎工作正常,bootstrap加载正常。有人可以帮忙吗?感谢

1 个答案:

答案 0 :(得分:1)

您收到错误,因为submit是一个函数,第一个参数是标签。您不能像在代码示例中那样编写f.submit,

如果您想要添加第二个参数,则需要提供至少nil作为标签。正确的方法是:

<%= f.submit nil, html: {class: "btn btn-default btn-xs"} %>

来自APIDock

  

提交(value = nil,options = {})public