0

我的应用程序中的导航栏有以下代码,使用 Devise 进行用户身份验证。

    <ul class="nav pull-right">
          <li class="">
            <%= link_to root_path do %>
            <i class="icon-home"></i> Home
            <% end %>
          </li>
          <li class="">
            <%= link_to current_user do %>
            <i class="icon-book"></i> Portfolio
            <% end %>
          </li>
          <li class="">
            <%= link_to help_path do %>
            <i class="icon-question-sign"></i> Help
            <% end %>
          </li>
          <li class="">
            <%= link_to(destroy_user_session_path, :method=>'delete') do %>
            <i class="icon-signout"></i> Logout
            <% end %>
          </li>
        </ul>

它在主页和用户个人资料页面上工作正常,但是当我转到其他页面时,例如项目或帮助页面(两者都before_filter :authenticate_user!在它们的控制器中),它会引发以下错误

     NoMethodError in Projects#index 
     undefined method `find_by_remember_token' for #<Class:0x3ec18d0>

它说有问题的代码是这部分:

    <%= link_to current_user do %>

我用它来将用户链接到他/她的个人资料。任何想法如何解决这个错误?

更新:添加后似乎问题自行解决了

    @user = current_user

到页面的各自控制器。

4

1 回答 1

0

尝试检查用户是否登录。

<%= link_to if_user_signed_in?, current_user %>
于 2013-10-27T15:18:33.880 回答