我目前正在使用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属性中,而不是在输入本身内
我怎样才能让它发挥作用?
答案 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; }