link_to 不起作用,控制器显示为 html 属性

link_to doesn't work, controller appears as a html attribute

过去 2 小时我一直在谷歌搜索,不幸的是我无法解决这个问题,尽管我认为这一定很容易。

<%= link_to 'Log Out', {:controller => 'static_pages', :action => 'index'} do %>
  <i class="glyphicon glyphicon-log-out link-icon"></i>
<% end %>

这是我的代码。所以,我需要 "Log Out" link 来显示注销图标,它来自 bootstrap。但是 HTML 这段代码的输出是这样的:

<a controller="static_pages" action="index" href="Log Out">
  <i class="glyphicon glyphicon-log-out link-icon"></i>
</a>

我尝试了很多方法来解决这个问题,但我也尝试删除 "do" 所以,我可以看看它是否导致了问题。这是我删除 "do":

后的 link
<%= link_to 'Log Out', {:controller => 'static_pages', :action => 'index'} %>

HTML 输出是:

<a href="/">Log Out</a>

没有意义。因为我的页脚中有相同的 link_to 并且它有效。页脚:

<%= link_to 'Log In', {:controller => 'users', :action => 'login'} %>

页脚输出:

<a href="/users/login">Log In</a>

那么,为什么这在另一个页面中不起作用?谢谢。

当您将块传递给 link_to 助手时,这将是它的主体。

<%= link_to :controller => 'static_pages', :action => 'index' do %>
  <i class="glyphicon glyphicon-log-out link-icon"></i>
  Log Out
<% end %>