0
我正在处理登录/注销系统。我创建了一个活动记录用户模型,并使用会话来记住用户是否登录,而不是使用设计。一切工作正常,直到我在application_controller.rb
中添加这些行以在登录之前和之后添加一个布局。未定义的本地变量或方法`current_user'cancancan
layout :set_layout
def set_layout
if session[:current_user_id]
'afterlogin'
else
'application'
end
end
现在,我登录并cancancan
被在HTML页面中使用的地方后,我得到undefined local variable or method 'current_user'
。我认为我必须添加一个current_user
方法,但我不完全在哪里以及如何定义它。
编辑:我已经在正在使用的登录另一个类类似的东西:
class Admin::ApplicationController < ApplicationController
before_action :authorize
def authorize
begin
@current_user ||= User.find(session[:current_user_id]) if session[:current_user_id]
rescue ActiveRecord::RecordNotFound
session.destroy
redirect_to '/login',alert: 'Please login'
end
end
end
我应该修改此之后我再补充一点的方法?
我不想用色器件。我想使用我创建的工作,直到布局的变化(如果我删除它工作正常)。我阅读了文档,我问了在我的情况下应该采用哪种方法。这不是一个答案。 –
@BogdanDaniel:我已经更新了我的答案。 – Jefferson
感谢您的更新。你能检查我的编辑吗? –