登录重定向后的active_admin

时间:2013-11-18 20:24:34

标签: ruby-on-rails redirect routes activeadmin

我在登录active_admin后遇到重定向问题。 该应用将我重定向到/ users / sign_in路径。

我遇到了一种让重定向写出类似内容的方法:

def after_sign_in_path_for(resource)
    admin_root
end

进入ApplicationController。

问题是已经使用此代码定义了after_sign_in_path_for方法(内部使用whit用户会话登录):

def after_sign_in_path_for(resource)
    puts "Info: " + resource.to_json
    resource[:is_blocked] ? edit_registration_path(resource) : index_path
end

我该怎么办?当我来自active_admin登录时,不调用该方法。 有没有其他方法可以进行重定向?

非常感谢!

2 个答案:

答案 0 :(得分:1)

经过长时间的研究,我找到了答案。

我做的是(在application_controller中):

def after_sign_in_path_for(resource)
 case resource
 when User
  resource[:is_blocked] ? edit_registration_path(resource) : index_path 
 when AdminUser
  admin_root_path
 end
end

此外,我还将此行 config.sign_out_all_scopes = false 取消注释到设计初始值设定项中,这样我就可以为不同的角色独立维护会话。

答案 1 :(得分:0)

我解决了这个问题,将此代码添加到我的application_controller.rb:

def after_sign_in_path_for(resource)
  request.env['omniauth.origin'] || stored_location_for(resource) || profile_path
end

def admin_access_denied(exception)
  redirect_to admin_root_path, :alert => exception.message
end

当然request.env['omniauth.origin']profile_path是来自我的应用程序的路径...可能stored_location_for与其他def一起完成工作......

的问候,