将类添加到生成的表单中的正确button_to语法是什么?

时间:2012-02-15 15:14:06

标签: ruby-on-rails css ruby-on-rails-3 helpers actionview

我正在尝试将一个类应用于Rails 3中button_to生成的表单。

:class选项设置提交按钮的类,以便docs告诉我们使用:form_class将类应用于表单。

E.g。

<%= button_to 'x', user_contact_path(@user, contact), :method => :delete, :form_class => "delete" %>

这只是将属性form_class="delete"添加到按钮元素。我已尝试使用:html_options等各种组合。

有人知道怎么做吗?

2 个答案:

答案 0 :(得分:15)

这种方法对我来说非常好。我能做到:

<%= button_to "Hello", root_url, :method => :get, :form_class => "my_class" %>

以上产生以下内容:

<form action="http://localhost:3000/" class="my_class" method="get">
  <div><input type="submit" value="Hello"></div>
</form>

但是,这在Rails 3.1中作为问题点中的链接,并且自form class is hard coded以来在Rails 3.0.x中也不起作用。

来自url_helper代码:

("<form method=\"#{form_method}\" action=\"#{html_escape(url)}\" 
  #{"data-remote=\"true\"" if remote} class=\"button_to\"><div>" +
  method_tag + tag("input", html_options) + request_token_tag + 
  "</div></form>"
).html_safe

答案 1 :(得分:0)

尝试

<%= button_to 'x', user_contact_path(@user, contact), {:method => :delete, :form_class => "delete"} %>

这会强制:form_class => "delete"成为options哈希的一部分,而不是html_options哈希。