要重写 ActiveAdmin 的 after_sign_in_path_for 方法,需要在扩展文件中定义一个新的控制器,并将该控制器添加到 ActiveAdmin 配置文件中。以下是实现的步骤:
创建扩展文件:在 app/admin 目录下创建一个扩展文件,如 admin_extension.rb。
定义新的控制器:在扩展文件中定义一个新的控制器,该控制器继承于 ActiveAdmin::Devise::SessionsController,并重写 after_sign_in_path_for 方法。例如:
class AdminExtension::Devise::SessionsController < ActiveAdmin::Devise::SessionsController
def after_sign_in_path_for(resource)
# 自定义跳转路径
some_path
end
end
config.to_prepare do
ActiveAdmin::Devise::SessionsController.send(:prepend, AdminExtension::Devise::SessionsController)
end
这将注册扩展文件中定义的新控制器,并在 ActiveAdmin 中覆盖默认的 after_sign_in_path_for 方法。
现在,当管理员登录到 ActiveAdmin 后,将自动重定向到自定义跳转路径。