[rails devise]ログインしていないユーザーをログインページへ遷移する方法
前提 今回はitemsコントローラーでの操作にする。
class ItemsController < ApplicationController
before_action :move_to_signed_in, except: [:index]
def index
# トップページ生成
end
private
def move_to_signed_in
unless user_signed_in?
#サインインしていないユーザーはログインページが表示される
redirect_to '/users/sign_in'
end
end
before_actionの使い方
before_action :move_to_signed_in, except: [:index]
before_action :move_to_signed_in, except: [:index]
before_action→コントローラで定義されたアクションが実行される前に、指定した共通の処理を行うことができるメソッドのこと。
except: [:index]→indexアクションは除く
・indexアクションを除き他のアクションが実行された時move_to_signed_inの処理を行う。つまりトップページが表示されているときはmove_to_signed_inの処理は実行されない
move_to_signed_inの実行内容
def move_to_signed_in
unless user_signed_in?
#サインインしていないユーザーはログインページが表示される
redirect_to '/users/sign_in'
end
def move_to_signed_in
unless user_signed_in?
#サインインしていないユーザーはログインページが表示される
redirect_to '/users/sign_in'
end
user_signed_in?→ユーザーがログインしているかどうか判別する
unless→「もし~でないならば」
unless user_signed_in?→もしユーザーがログインしていないのなら
redirect_to '/users/sign_in'→ログインページに画面遷移する
まとめ
indexアクション以外のアクション(createなど)をユーザーが実行しようとしたら
ログインしているユーザーかどうか判別する。
ユーザーがログインしていなかったらログインページ(/users/sign_in)に画面遷移する
ログインできていたらユーザーが指定したアクションが実行できる
Author And Source
この問題について([rails devise]ログインしていないユーザーをログインページへ遷移する方法), 我々は、より多くの情報をここで見つけました https://qiita.com/risanomura/items/45625dae14d52d744fb8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .