Rails button_to与HTML按钮标记

时间:2014-05-31 19:44:24

标签: html ruby-on-rails ruby ruby-on-rails-4

我是Rails的新手,我正在尝试在页面中添加几个按钮。我看到你可以使用HTML标签或rails" button_to。"但是,我无法找出每个方面的差异。

从我在S.O.中看到的情况来看,似乎button_to可以更容易地从控制器等调用函数。但是,HTML按钮似乎更容易自定义?这是真的?还有其他差异。

只是为了确保我在新项目中做正确的事情。提前谢谢。

2 个答案:

答案 0 :(得分:6)

button_to和Rails中的所有其他帮助一样(例如link_toform_forimage_tag ...)只是在HTML代码中转换Rails命令。我们可以说这是编写“纯HTML”的捷径。

在您的情况下,对于button_to,您可以在此处查看参考(以及打印的内容):http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-button_to

例如:

<%= button_to "New", action: "new" %>
# => "<form method="post" action="/controller/new" class="button_to">
#      <div><input value="New" type="submit" /></div>
#    </form>"

我建议你使用这些助手,因为它更像是“Rails”,这可以提高你的编码速度。

答案 1 :(得分:1)

button_to标记与html标记一样易于自定义。

有一种惯例是不在此元素中设置HTML标记,而是包含* .css文件。 HTML标记的所有自定义都应该添加类和ID。

要在rails中执行此操作,您应该使用

<%= button_to "New", { action: "new" }, class: "my_class", id: "my_id" %>

它将生成如下的html代码:

<form method="post" action="/controller/new" class="button_to">
  <div><input class="my_class" id="my_id" value="New" type="submit" /></div>
</form>"

如您所见,使用Rails助手可以使用更少,更易读的代码编写相同的功能。