質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

1回答

436閲覧

adminとuserいずれかでログインしたいがリダイレクトが繰り返される

KOO_

総合スコア58

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2020/05/06 14:07

こんばんわ。現在プログラミングを行なっており、adminとuserいずれかでログイン出来るようにしたいです。

before_action :authenticate_user_or_admin private def authenticate_user_or_admin unless user_signed_in? || admin_signed_in? redirect_to root_path, alert: 'error' end end

上記のようなコードをapplication_controller.rbに書いておりますが、リダイレクトがループしてしまい、サイトを表示することができません。

どこが間違っているのでしょうか?

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

root_path も認証が必要になってませんか?
つまり、before_action :authenticate_user_or_admin を通る。
だからです。
before_action :authenticate_user_or_admi,except: なんとか

とすればよいのですが、この場合 なんとか は何だろう、、、

スマートな方法が有るかもしれませんが、それは識者にお願いして、
とりあえず先に進むための無理やり版

root_path はどこですか?
そのcontrollerにアクションがいくつ有るかにもよりますが
1)もしひとつなら
def authenticate_user_or_admin
をoverrideして常に true を返す様にする
def authenticate_user_or_admin ; true ; end

2)アクションがいくつも有るなら
before_action :authenticate_user_or_admi,except: root_pathのアクション

  1. 2はもしかすると application_controller.rb に負けるかもしれないので、その場合は root_pathのcontrollerを

class RootController < ActionController::Base before_action :authenticate_user_or_admi,except: root_pathのアクション

投稿2020/05/06 23:53

winterboum

総合スコア23567

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問