如何在ActiveAdmin中覆盖“after_sign_up_path_for”?

我正在构建一个Rails应用程序(使用ActiveAdminDevise ),我试图覆盖after_sign_up_path_for以在注册后更改重定向。
我从设计中遵循了这个教程 ,但我的RegistrationsController从未被调用过。 我想它可能与ActiveAdmin有点不同。

我还尝试了其他解决方案,我发现堆栈溢出没有任何运气。

这是我的路线

Rails.application.routes.draw do devise_config = ActiveAdmin::Devise.config devise_config[:controllers][:omniauth_callbacks] = 'users/omniauth_callbacks' devise_config[:controllers][:registrations] = 'registrations' devise_for :users, devise_config ActiveAdmin.routes(self) # other routes end 

而我的RegistrationsController :(从未调用过)

 class RegistrationsController < ActiveAdmin::Devise::RegistrationsController protected def sign_up(_resource_name, _resource) true end def after_sign_up_path_for(_resource) root_url end end 

谢谢你的帮助 !

我的项目

  • Rails 4.2.6
  • ActiveAdmin 1.0.0.pre2
  • 设计3.5.9

ActiveAdmin不使用您的RegistrationsController,也不能使用它们。 您可以在ApplicationController上定义该方法,也可以这样做:

 # conig/initializer/active_admin.rb ActiveAdmin::Devise::RegistrationsController.class_eval do def after_sign_up_path_for(_resource) root_url end end