2017-07-17 13 views
0

現在、ユーザーはサインイン/ログイン後にルートインデックスページにリダイレクトされますが、リダイレクトが別のページに移動するようにカスタマイズしたいと考えています。ユーザーがDeviseでログインまたはサインインした後、どのように経路をカスタマイズしますか?

マイルート・ファイルは次のとおりです。

Rails.application.routes.draw do 
    devise_for :admins, path: 'admins' 
    root 'home#index' 
    get '/' => "courses#index", as: :user_root 
    devise_for :users, path: 'users' 
    resources :courses, :lessons 
end 

私はリダイレクトので、私はコードget '/' => "courses#index", as: :user_rootを使用し、私がしたかったようリダイレクトが働いていたに進み、デフォルトでは、ルートになることを理解しています。しかし、ユーザーがログアウトすると、リダイレクトはもう一度get '/' => "courses#index", as: :user_rootに移動しようとします。代わりに、ユーザーがログアウトしてroot 'home#index'に行くときにリダイレクトします。

基本的に私の質問は、ユーザーがログイン/サインインしてログアウトするかどうかによって異なるリダイレクトを達成できるように私のルートをカスタマイズする方法です。

答えて

2

あなたはこれを使用することができます:

signing in

signing out

:それは工夫のwikiにある

class ApplicationController < ActionController::Base 

private 
    def after_sign_in_path_for(resource) 
    user_root_path 
    end 

    def after_sign_out_path_for(resource_or_scope) 
    root_path 
    end 
end 

関連する問題