我有一个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教程以及其他一些教程,但这对我来说似乎都是一样的。
答案 0 :(得分:0)
这个问题并不是真正的答案,但我最终剥离了authlogic并转而设计。实现更改的速度比我在authlogic中尝试调试问题的时间要快得多。