0

サインイン後にデバイスのルートパスを設定したいこれはアプリケーションコントローラーの私のコードです

def signed_in_root_path(scope_or_resource)
if current_user.role == "dealer"
  dashboard_dealer_path
elsif current_user.role == "admin"
  admin_dashboard_path
else
  dashboard_customer_path
end
end

サインインした後、routes.rbファイルにあるルートページに戻ることはできません

devise_scope :user do
  root :to => 'carinfos#index'
end

サインイン後、carinfos/index ページに移動できます (つまり、localhost:3000 は表示されません)。そのページに移動すると、ディーラーとしてログインしている場合、ディーラー ダッシュボードにリダイレクトされます。

4

1 に答える 1

1

Devise セッションコントローラーには after_sign_in_path_for というメソッドがあります

def after_sign_in_path_for(resource)
    if resource.role == "dealer"
      dashboard_dealer_path 
    elsif resource.role == "admin"
      admin_dashboard_path
   else
     dashboard_customer_path
   end
end

セッションコントローラーをオーバーライドするだけです

class SessionsController < Devise::SessionsController
于 2013-11-08T16:20:47.267 に答える