button_to的HTML内容

时间:2012-06-05 16:43:18

标签: html ruby-on-rails button twitter-bootstrap button-to

我目前正在使用link_to:

<%= link_to edit_webcast_path(@webcast), :class => 'btn'  do %>
    <i class="icon-pencil"></i> Edit Webcast
<% end %>

但我想用button_to做同样的事情,但是button_to必须有一个传递给它的第一个标签参数,否则它将使用该路径作为其标签。

<%= button_to edit_webcast_path(@webcast), :class => 'btn'  do %>
    <i class="icon-pencil"></i> Edit Webcast
<% end %>

...产生一个带有标签的按钮,该标签是已解析的edit_webcast_path(@webcast)路径。实际上似乎没有效果。

我尝试直接传递html作为第一个参数:

<%= button_to "<i class=\"icon-white icon-minus-sign \"></i> Edit Webcast".html_safe, webcast_path(@webcast), :class => 'btn'%>

但这导致一个按钮,标签显示我传入的html字符串的一部分。查看生成的HTMl,我可以看到第一个参数的内容放在输入的value属性中,而不是在输入本身内

我怎样才能让它发挥作用?

4 个答案:

答案 0 :(得分:2)

Rails button_to生成一个包含html <input type="submit">元素的表单,而不是<button>元素。 您可以尝试覆盖它或编写自己的帮助程序来生成<button>,获取look at this example

答案 1 :(得分:0)

在Rails中,button_to将尝试发布帖子或放置,因此它实际上不是“常规”按钮,您可以设置链接的样式,使其看起来像按钮一样

答案 2 :(得分:0)

您可以在button_to元素内添加HTML,如下所示:

<%= button_to "New", new_articles_path do %>
  Create a <strong>new article</strong>
<% end %>

更多信息:https://apidock.com/rails/ActionView/Helpers/UrlHelper/button_to

答案 3 :(得分:-4)

你做错了。您正在尝试添加一个不必要的html元素来控制CSS作业。

而是只为按钮创建一个类或Id,并将其添加到css:

 .btn { padding-left:30px; background: url(pencil.png) no-repeat; }