【问题标题】:How can I override "after_sign_up_path_for" in ActiveAdmin?如何在 ActiveAdmin 中覆盖“after_sign_up_path_for”?
【发布时间】:2016-05-10 19:35:31
【问题描述】:

我正在构建一个 Rails 应用程序(使用 ActiveAdminDevise)并且我正在尝试覆盖 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

【问题讨论】:

    标签: ruby-on-rails devise activeadmin


    【解决方案1】:

    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
    

    【讨论】:

    • 感谢您的回复!我已经尝试过了,但它在 active_admin.rb 或 ApplicationController 中都不起作用。我仍然被重定向到 /admin/login 页面:(
    猜你喜欢
    • 2011-12-21
    • 1970-01-01
    • 2022-10-04
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多