今回自分がログイン制限実装で悩んだ事を書いていきます。
今回の実装内容
トップページから投稿画面へ移動しようとした時に、ログインしていないユーザは、ログイン画面に遷移させるという実装内容です。
結論は、どのコントローラーのどのアクションの時に遷移させるかが大切です。
今回の記述したファイル
items.controller.rb
参考:投稿画面ファイル
items/new.html.erb:投稿画面が記載
今回自分が行って思い通りならずに悩んだところから、解決までの流れです。
まず行った事
ApplicationControllerへ記述
結果
トップページも表示されずにろぐいん画面へ遷移され、思ってもいない事になった
次に行った事
今回作成しているアプリケーショでの投稿画面のコントローラ名は、「items」なので
ItemsControlleへ記述をしてみた
結果
ここでもトップページが表示されずにログイン画面へ遷移されてしまった。
そこで、今回のプログラミングの流れを考えてみます。
・実装したい流れは
【ログインしていれば】
トップページ → ログインしていれば → 投稿画面へ
【ログインしていなければ】
トップページ → ログインしていなければ → ログイン画面へ
もっと詳しく書くと
【ログインしていれば】
トップページ → items.controllerのnewアクションを通り → 投稿画面へ(new.html.erb)
【ログインしていなければ】
ログインしていなければ → items.controllerのnewアクションで弾かれて → ログイン画面へ遷移
ここで気づいてことは、items.controllerのnewアクショでの遷移先を決める事が起こる!
そこで、items.controllerに記述したのは
これで無事にトップページからログインしていないユーザが投稿画面へ移動しようとしてもログインページへの遷移ができるようになりました。
初学者のため間違っていると思いますので、何かあれば教えていただけたら、とても嬉しいです。