【发布时间】:2013-09-27 03:21:58
【问题描述】:
我写了这个辅助方法:
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
private
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
helper_method :current_user
end
在我看来,我应该能够做到current_user.role == 'some role',但是当我这样做时,它会说“nil:NilClass 的未定义方法角色”现在是否意味着角色列是空的并且什么都没有在或者用户对象是空的?因为我向您保证我已登录,我存在于数据库中,并且....数据库中的角色字段始终为空。
更新 我可能应该声明User.role == 'admin' 有效,因为它们是数据库或井列中的角色属性。为什么我不能在 current_user 上做 .role?
【问题讨论】:
-
该消息意味着
current_user正在返回nil。你是如何处理登录的?
标签: ruby-on-rails ruby session ruby-on-rails-4