行いたい事
「出品」ボタンを押したときに、ユーザーがログインをしていなければログイン画面に飛ぶようにしたい。
item_controller.rb
class ItemController < ApplicationController
before_action :move_to_index, except: :index
before_action :authenticate_user!, except: :index
def index
end
def new
end
def create
end
private
end
上記の様に
$ authenticate_user!
メソッドをbefore_actionで書いてみたが、ログイン画面に遷移しない・・・・なぜ??
before_actionの順番を変える事で解決しました。
item_controller.rb
class ItemController < ApplicationController
before_action :authenticate_user!, except: :index
before_action :move_to_index, except: :index
def index
end
def new
end
def create
end
private
end
コードは上から順番に読み込まれるので、
ログインページに飛ばしてくれるメソッド よりも
index以外のアクションをしようものなら問答無用にトップページに飛ばしてしまう
メソッドが先に働いてしまっていた。