Ruby on rails 视图中的if-else问题

Ruby on rails 视图中的if-else问题,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在关注railstutorial,现在使用如下所示的条件下拉列表,标题将根据用户是否登录而动态变化 <header class="navbar navbar-fixed-top navbar-inverse"> <div class="container"> <%= link_to "sample app", root_path, id: "logo" %> <nav> <ul class="nav navbar-nav navbar

我正在关注railstutorial,现在使用如下所示的条件下拉列表,标题将根据用户是否登录而动态变化

<header class="navbar navbar-fixed-top navbar-inverse">
<div class="container">
<%= link_to "sample app", root_path, id: "logo" %>
<nav>
  <ul class="nav navbar-nav navbar-right">
    <li><%= link_to "Home", root_path %></li>
    <li><%= link_to "Help", help_path %></li>
    <% if logged_in? %>
      <li><%= link_to "Users", '#' %></li>
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
          Account <b class="caret"></b>
        </a>
        <ul class="dropdown-menu">
          <li><%= link_to "Profile", current_user %></li>
          <li><%= link_to "Settings", '#' %></li>
          <li class="divider"></li>
          <li>
            <%= link_to "Log out", logout_path, method: "delete" %>
          </li>
        </ul>
      </li>
    <% else %>
      <li><%= link_to "Log in", login_path %></li>
    <% end %>

  </ul>
</nav>
出于某种原因,这不起作用,尽管我完全复制了教程。我不确定线路是否已登录?未被调用,或者它被调用但返回false。else块被顺便执行


我想知道是否还有其他方法可以检查助手中定义的方法是否已登录?是否正常工作并正确呼叫?类似于打印方法本身的输出?

检查是否调用了该方法以及其中发生了什么的一种快速方法是在其中抛出调试语句,如下所示:

def logged_in?
  Rails.logger.debug("\n\n *** logged_in? #{current_user}")
  !current_user.nil?
end
加载页面,然后查看开发日志,查看该行是否存在,以及用户是否存在

有关调试的更多详细信息,请参阅


希望有帮助。

谢谢,真的很有帮助。至少我现在能找到问题所在
def logged_in?
  Rails.logger.debug("\n\n *** logged_in? #{current_user}")
  !current_user.nil?
end