2010-11-18 42 views

回答

12

用class Devise :: RegistrationsController heriting創建一個控制器。您可以添加您的過濾器後。你只需要定義該控制器像登記控制器

class RegistrationsController < Devise::RegistrationsController 
    before_filter :authenticate_user! 
end 

在你的routes.rb

devise_for :users, :controllers => { :registrations => 'registrations'} 
+0

感謝這就是我一直在尋找 – stephenmurdoch 2010-11-18 09:01:05

+1

它不工作了...... – nverinaud 2012-07-04 13:43:41

+4

@nverinaud我知道它已經一年多了,因爲你的評論,但只是作爲提醒,你可以通過使用'authenticate_scope!'來代替。 – 2013-09-21 14:29:46

4

因爲authenticate_user!是沒有得到所謂的它並沒有爲我工作。

我固定它的方式:

class RegistrationsController < Devise::RegistrationsController 
    before_filter :prevent_sign_up 

private 
    def prevent_sign_up 
     redirect_to new_user_session_path and return 
    end 
end 
+1

這裏有一個很好的觀點,通常一個標準的Rails應用程序不會爲每個動作都使用Devise,所以你的解決方案非常有效。這對我來說很有用。 – Puce 2014-03-02 23:54:04