2012-12-30 112 views
1

我在我的Rails应用程序两个分离的登录模式:设计after_sign_in_path_for其他模型

  • 用户
  • 联系

我耙路输出为: 耙路线| 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 

和ApplicationController中我有

def after_sign_in_path_for(resource) 
    request.referrer 
    end 

它为我的用户模型的伟大工程,但如何做到这一点对我的管理模式,使标志后,我正在重定向到相同页面(我用内置色器件控制器)像after_admin_sign_in_path_for(resource) becouse如果我写的,所以我在日志中:

Filter chain halted as :require_no_authentication rendered or redirected 

回答

14
def after_sign_in_path_for(resource) 
    case resource 
    when User then request.referrer 
    when Admin then .... 
    end 
end 
+0

为时管理员然后admin_orders_path我得到未定义的方法'admin_admin_url'为# brabertaser19

+0

你放在哪里:after_sign_in_path_for? –

+0

你读过我的问题了吗? <...并在ApplicationController中我有...>也许你知道:为什么如果管理员注销,用户会话也被破坏? – brabertaser19