before_action :authenticate_user
でログインしていないユーザーが /posts/indexにアクセスするのをできなくしたいのですがなぜかできません。
User controllerは以下の通りです。
class UsersController < ApplicationController before_action :authenticate_user, {only: [:index, :show, :edit, :update]}
Usersの場合は authenticate_user のおかげでログインしていないユーザーが index show edit update にアクセスすることができません。
class PostsController < ApplicationController before_action :authenticate_user
しかしpostsの場合はすべてのログインしていないユーザーを弾く設定をしたのですが、なぜかログインしていない状態で /posts/indexを検索したら普通に /posts/indexにアクセスできてしまいます。何が原因でしょうか?
application controller は以下の通りです
class ApplicationController < ActionController::Base before_action :set_current_user def set_current_user @current_user = User.find_by(id: session[:user_id]) end def authenticate_user if @current_user == nil flash[:notice] = "ログインしてください" redirect_to("/login") end end def forbid_login_user if @current_user flash[:notice] = "すでにログイン済みです" redirect_to("/users/#{@curret_user.id}") end end end
あなたの回答
tips
プレビュー