用于button_to的 HTML 内容



我目前正在使用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; }

相关内容

  • 没有找到相关文章

最新更新