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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Devise

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

Ruby

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

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Ruby on Rails

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

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Q&A

解決済

1回答

1522閲覧

Deviseを用いた複数モデルのログアウト後の画面遷移ができない

Foxy

総合スコア43

Devise

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

Ruby

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

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Ruby on Rails

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

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

0グッド

0クリップ

投稿2021/04/19 02:43

編集2021/04/19 10:19

前提・実現したいこと

RailsにてDeviseを用いた複数モデルのログイン機能を実装しているのですが、ユーザーと管理人それぞれのログイン後の画面遷移はでき、ログアウトの画面遷移ができません。

・ユーザー
ログイン後:root_path
ログアウト後:root_path
・ユーザー
ログイン後:admins_path
ログアウト後:new_admin_session_path
としたいです。

発生している問題・エラーメッセージ

ActionController::ActionControllerError in Admins::SessionsController#destroy Cannot redirect to nil!

該当のソースコード

Ruby

1class ApplicationController < ActionController::Base 2 def after_sign_in_path_for(resource) #ログイン後画面遷移先 3 case resource 4 5 when Member 6 root_path 7 when Admin 8 admins_path 9 end 10 end 11 12 def after_sign_out_path_for(resource) #ログアウト後画面遷移先 13 case resource 14 15 when Member 16 root_path 17 when Admin 18 new_admin_session_path 19 end 20 end 21end

試したこと

ログイン後の分岐はできるので、ログイン時のafter_sign_in_pathをafter_sign_out_pathに変えたのですが、それだけでは駄目なのでしょうか。

補足情報(FW/ツールのバージョンなど)

Rails 5.2.5

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

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

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

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

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

guest

回答1

0

自己解決

recource_or_scopeを用いれば実装できました

Ruby

1def after_sign_out_path_for(resource_or_scope) 2 if resource_or_scope == :member 3 root_path 4 elsif resource_or_scope == :admin 5 new_admin_session_path 6 else 7 root_path 8 end 9 end

投稿2021/04/20 05:20

Foxy

総合スコア43

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問