为其他模型设计after_sign_in_path_for

bra*_*r19 1 ruby ruby-on-rails devise

我的rails应用程序中有两个独立的登录模型:

  • 用户
  • 管理员

我的rake路线输出是:rake routes | grep设计

 new_admin_session GET    /admins/sign_in(.:format)                                                 devise/sessions#new
                  admin_session POST   /admins/sign_in(.:format)                                                 devise/sessions#create
          destroy_admin_session DELETE /admins/sign_out(.:format)                                                devise/sessions#destroy
               new_user_session GET    /users/sign_in(.:format)                                                  devise/sessions#new
                   user_session POST   /users/sign_in(.:format)                                                  devise/sessions#create
           destroy_user_session DELETE /users/sign_out(.:format)                                                 devise/sessions#destroy
                  user_password POST   /users/password(.:format)                                                 devise/passwords#create
              new_user_password GET    /users/password/new(.:format)                                             devise/passwords#new
             edit_user_password GET    /users/password/edit(.:format)                                            devise/passwords#edit
                                PUT    /users/password(.:format)                                                 devise/passwords#update
       cancel_user_registration GET    /users/cancel(.:format)                                                   devise/registrations#cancel
              user_registration POST   /users(.:format)                                                          devise/registrations#create
          new_user_registration GET    /users/sign_up(.:format)                                                  devise/registrations#new
         edit_user_registration GET    /users/edit(.:format)                                                     devise/registrations#edit
                                PUT    /users(.:format)                                                          devise/registrations#update
                                DELETE /users(.:format)                                                          devise/registrations#destroy
Run Code Online (Sandbox Code Playgroud)

在ApplicationController我有

 def after_sign_in_path_for(resource)
    request.referrer 
  end
Run Code Online (Sandbox Code Playgroud)

它对我的用户模型非常有用,但如何为我的管理模型做到这一点,以便在登录后我被重定向到同一页面(我使用内置的设计控制器),after_admin_sign_in_path_for(resource) 如果我写,所以我在日志中:

Filter chain halted as :require_no_authentication rendered or redirected
Run Code Online (Sandbox Code Playgroud)

Val*_*von 14

def after_sign_in_path_for(resource)
  case resource
  when User then request.referrer 
  when Admin then ....
  end
end
Run Code Online (Sandbox Code Playgroud)