2016-05-10 38 views
1

我建立一個Rails應用程序(使用ActiveAdmin設計),我試圖重寫after_sign_up_path_for註冊後更改重定向。
我跟着這個tutorial從設計,但我的RegistrationsController永遠不會被調用。我想這可能與ActiveAdmin有點不同。如何在ActiveAdmin中覆蓋「after_sign_up_path_for」?

我也試過其他的解決方案,我發現堆棧溢出沒有任何運氣。

這裏是我的路線

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

回答

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 
+0

感謝您的回覆! 我已經試過這個,但是它在active_admin.rb或ApplicationController中都不起作用。我仍然被重定向到/ admin /登錄頁面:( – anthony