我目前正在使用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,我可以看到第一个参数的内容放置在输入的值属性中,而不是输入本身中。
我怎样才能让它工作?
Rails button_to
生成一个包含 html <input type="submit">
元素的表单,而不是<button>
元素。你可以尝试覆盖它或者编写自己的帮助程序来生成<button>
,看看这个例子
在 Rails 中,button_to会尝试做一个帖子或放一个帖子,所以它实际上不是一个"常规"按钮,你可以设置你的链接的样式,使其外观和行为像一个按钮
您可以在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
你做错了。您正在尝试添加不必要的 html 元素来控制 CSS 作业
。相反,只需为按钮创建一个类或 Id,并将其添加到 css 中:
.btn { padding-left:30px; background: url(pencil.png) no-repeat; }