0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails アクセス制限】ログインしていないとログイン画面へ遷移させる

Posted at

今回自分がログイン制限実装で悩んだ事を書いていきます。

今回の実装内容

トップページから投稿画面へ移動しようとした時に、ログインしていないユーザは、ログイン画面に遷移させるという実装内容です。

結論は、どのコントローラーのどのアクションの時に遷移させるかが大切です。
今回の記述したファイル
items.controller.rb

参考:投稿画面ファイル
items/new.html.erb:投稿画面が記載

今回自分が行って思い通りならずに悩んだところから、解決までの流れです。

まず行った事
ApplicationControllerへ記述

3a054547f1aedd97255c89b9aecce2ac.png
結果
トップページも表示されずにろぐいん画面へ遷移され、思ってもいない事になった

次に行った事
今回作成しているアプリケーショでの投稿画面のコントローラ名は、「items」なので
ItemsControlleへ記述をしてみた

d0aa3fd2d260be7f2244d3878a1500b7.png

結果
ここでもトップページが表示されずにログイン画面へ遷移されてしまった。
そこで、今回のプログラミングの流れを考えてみます。

・実装したい流れは
 【ログインしていれば】
  トップページ → ログインしていれば → 投稿画面へ

 【ログインしていなければ】
  トップページ → ログインしていなければ → ログイン画面へ

もっと詳しく書くと
 【ログインしていれば】
  トップページ → items.controllerのnewアクションを通り → 投稿画面へ(new.html.erb)

 【ログインしていなければ】
  ログインしていなければ → items.controllerのnewアクションで弾かれて → ログイン画面へ遷移
    
ここで気づいてことは、items.controllerのnewアクショでの遷移先を決める事が起こる!
そこで、items.controllerに記述したのは

4608f06b50dcd8f69c17bd30da9175f4.png

これで無事にトップページからログインしていないユーザが投稿画面へ移動しようとしてもログインページへの遷移ができるようになりました。
初学者のため間違っていると思いますので、何かあれば教えていただけたら、とても嬉しいです。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?