link_to 阻止无效

link_to block not working

我正在使用一系列 link_to 块在我的应用程序中创建按钮。但是我发现这些 links 并没有结束工作。当我将鼠标悬停在按钮上时,它识别出 link,正确的 url 显示在 firefox 的左下角,但是当我单击时,没有任何反应。我的终端或开发日志中也没有任何内容。

我的代码如下:

<%= link_to new_folder_path do%>
    <div class="btn btn-default add-button add_fields"><span class="glyphicon glyphicon-plus"></span>Add Folder</div>
<% end %>

这会呈现以下内容 html:

<li>
  <a href="/folders/new">
    <div class="btn btn-default add-button add_fields"><span class="glyphicon glyphicon-plus"></span>Add Folder</div>
  </a>
</li>

我还应该注意,如果我只是在没有 do 块的情况下键入标准 link,它运行得很好:

<li><%= link_to "test", new_folder_path %></li>

如有任何想法,我们将不胜感激!

试试这个。

= link_to "<span class='glyphicon glyphicon-plus'></span>Add Folder".html_safe, new_folder_path, class: 'btn btn-default add-button add_fields'

您最好使用 button_to 作为按钮 -

Generates a form containing a single button that submits to the URL created by the set of options.

因此,您可以使用:

而不是 link_to
<%= button_to "Add Folder", new_folder_path, class: "btn btn-default add-button add_fields glyphicon glyphicon-plus" %>

作为旁注,如果您尝试在 内部 元素设置 <a> 标签的样式,您将会遇到问题。您可以更好地设计 <a> 标签本身的样式,或者根本不用。

因此,您遇到的问题可能可以通过以下方式解决:

<%= link_to "Add Folder", new_folder_path, class: "btn btn-default add-button add_fields glyphicon glyphicon-plus" %>

--

图标

我知道 Bootstrap 包括 Glyphicons。如果它们类似于 ionIcons,它们将通过在字形前面加上 :before 伪 class.

来工作

如果是这种情况,您不需要单独的<span>元素来封装它们;只需将 class 添加到您的 link/button 并且 :before 应该放在前面。

当然,如果你想在 link 内设置 span 的样式,你必须使用 link_to 块;但是,您需要确保将文本包含在 span 中,而不是没有任何内容。

原来我在我的 div 中丢了一个 class,阻止了 link 渲染(add_fields 是 class)。令人非常不满意的答案就是这样。感谢所有花时间给我提示的人。