如何覆盖" after_sign_up_path_for"在ActiveAdmin中?

时间:2016-05-10 19:35:32

标签: ruby-on-rails devise activeadmin

我正在构建Rails应用程序(使用 ActiveAdmin 设计),我试图覆盖 after_sign_up_path_for 以在签名后更改重定向起来。
我从设计中跟踪了这个tutorial但我的 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

1 个答案:

答案 0 :(得分:0)

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