2012-07-31 113 views
1

我有一個rails應用程序,我使用的是authlogic和cancan的組合。rails authlogic在登錄重定向後找不到current_user(undefined)

當我在應用程序檢查current_user,我總是得到undefined variable or method 'current_user'

我可以得到current_user從我UserSessions控制器顯示如果我使用

 
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 

所以在我看來正在創建的會話,但軌道是無法再次找到它。 任何人都可以闡明爲什麼這是什麼?

我已經通過瑞恩貝茨教程,和其他一些,但這一切似乎都是我。

回答

0

這不是問題的答案,但我最終剝奪了authlogic並轉移到設計。進行更改要比我在authlogic中嘗試調試問題的時間快得多。