我写了这个辅助方法:
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?