管理者 t/f を指定するブール スイッチを持つユーザー モデルがあります。私の現在のアプリケーションコントローラ:
class ApplicationController < ActionController::Base
protect_from_forgery
def after_sign_in_path_for(user)
if current_user.admin?
admin_index_path
else
dashboard_index_path
end
end
end
私の現在の管理コントローラー:
class AdminController < ApplicationController
def index
if current_user.admin?
admin_index_path
else
home_index_path
end
end
end
目標はもちろん、管理者インデックス ページへのアクセスを管理者ユーザーのみに許可することです。管理者としてサインインするとリダイレクトは正常に機能しますが、管理者以外のユーザーとして admin_index_path に移動すると、NoMethodError in AdminController#index エラーが発生します (nil:NilClass の未定義メソッド「admin?」)。この問題について助けてください。おそらく、よりエレガントで安全な CanCan ソリューションがあるように感じますが、それを達成する方法についての適切な説明は見つかりませんでした。考え?前もって感謝します!