0

我有一个非常令人沮丧的问题。

我不能从我在 rails 的视图中调用任何辅助方法。这就是我所拥有的:

应用控制器.rb

class ApplicationController < ActionController::Base

   protect_from_forgery

   def current_user
     @current_user ||= User.find(session[:user_id]) if session[:user_id]
   end

   helper_method :current_user
   helper_method :all

  end

/app/views/welcome/_navi_bar.haml:

%ul.nav.nav-pills.pull-right
   %li.pull-right
      - if current_user
         %a.btn-small{"data-toggle" => "modal", :href => log_out_path, :role => "button"}
           %i.icon-user.icon-white
           %strong
             Log Out
       - else
         %a.btn-small{"data-toggle" => "modal", :href => "#LoginBox", :role => "button"}
           %i.icon-user.icon-white
            %strong
             Login

这就是我得到的错误:

undefined local variable or method `current_user' for #<#<Class:0x007ff0a0544668>:0x007ff0a05414b8>

我真的不明白问题是什么。请帮忙 !

4

1 回答 1

0

您已经在应用程序控制器而不是应用程序助手中编写了代码这就是您的方法没有被调用的原因

如果您想检查当前用户是否已登录,您可以在应用程序控制器中使用过滤器之前并调用该方法

每当您不需要检查方法时,请在该位置的过滤器之前添加跳过

于 2013-06-27T13:14:56.573 回答