rails authlogic在登录重定向后找不到current_user(undefined)

时间:2012-07-31 00:30:43

标签: ruby-on-rails-3 authlogic

我有一个rails应用程序,我正在使用authlogic和cancan的组合。

当我在应用中检查current_user时,我总是得到undefined variable or method 'current_user'

如果我使用

,我可以从我的UserSessions控制器显示current_user
def create
   @user_session = UserSession.new(params[:user_session])

   if @user_session.save
       return render :json => current_user
   end
end

但是,如果在我的家庭控制器中,我会尝试

def index
   return render :json => current_user
end

我收到undefined错误。

在我的应用程序助手中,我有

class ApplicationController < ActionController::Base
  protect_from_forgery

  helper_method :current_user

  private

  def current_user_session
    return @current_user_session if defined?(@current_user_session)
    @current_user_session = UserSession.find
  end

  def current_user
    return @current_user if defined?(@current_user)
    @current_user = current_user_session && current_user_session.record
  end
end

所以在我看来会话正在创建,但rails无法再找到它。 任何人都可以解释为什么会这样吗?

我已经阅读了Ryan Bates教程以及其他一些教程,但这对我来说似乎都是一样的。

1 个答案:

答案 0 :(得分:0)

这个问题并不是真正的答案,但我最终剥离了authlogic并转而设计。实现更改的速度比我在authlogic中尝试调试问题的时间要快得多。