質問: User.find_by(params[:id])を追加して、 if current_user.admin?の部分を @user.admin?にしたらエラーが起きなくなった。 **しかし、なぜcurrent_userだとadmin?メソッドが効かないのか。 また、view/users/index.html.slimではif current_user.admin?でエラーなく実装することができました。 それはなぜなのでしょうか。どなたかご教授いただけると幸いです。** ### 補足情報(FW/ツールのバージョンなど) Ruby version 2.6.3 Rails 5.2.3
回答: 「current_userだとadmin?メソッドが効かない」ではなく「current_userがnilである」のが問題の本質だと思います。 コントローラから`@current_user`として渡しているのであれば、`@current_user.admin?`とするのが正しいのではないでしょうか。