前提・実現したいこと
Railsでログイン状態でないとアクセスできないページを作っています。
発生している問題・エラーメッセージ
ApplicationControllerクラスで定義したユーザー認証用のメソッドを、UsersControllerクラス内でbefore_actionを使って呼び出そうとしているのですができません。エラーなどは起こっていませんが、アクセスした際にログイン画面にリダイレクトされず、普通にアクセスできてしまいます。
該当のソースコード
Ruby
1class ApplicationController < ActionController::Base 2 before_action :set_current_user 3 4 def set_current_user 5 @current_user = User.find_by(id: session[:user_id]) 6 end 7 8 def authenticate_user 9 if @current_user == nil 10 redirect_to("/login") 11 end 12 end 13 14end 15 16class UsersController < ApplicationController 17 before_action :authenticate_user ,{only: [:index ]} 18 19 def index 20 @users = User.all 21 end 22 23end
試したこと
authenticate_userメソッドをUsersControllerクラス内に定義した場合は呼び出せるようです。しかしauthenticate_userメソッドはApplicationControllerクラス内に一つだけ定義して、他のコントローラーからも使い回せるようにしたいです。
補足情報(FW/ツールのバージョンなど)
Rails 6.1.4.1
ruby 2.6.8
あなたの回答
tips
プレビュー