私はこのヘルパーメソッドを書きました:
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 を実行できないのはなぜですか?