目前,用户在登录/登录后会被重定向到根索引页面,但我想对其进行自定义,以便重定向转到不同的页面。
我的路线档案是:
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
我理解默认情况下,root会成为重定向所在的位置,因此我使用了代码get '/' => "courses#index", as: :user_root
,并且重定向按照我的意愿运行。但是,当用户注销时,重定向会再次尝试转到get '/' => "courses#index", as: :user_root
,这是我不想要的。相反,我希望在用户注销时转到root 'home#index'
重定向。
基本上我的问题是如何自定义我的root,以便根据用户登录/登录和注销来实现不同的重定向?
答案 0 :(得分:2)
您可以使用:
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
它是设计维基: