2010-11-18 11 views

Répondre

12

Créer un contrôleur avec la classe Devise :: RegistrationsController. Après vous pouvez ajouter votre filtre. Vous avez juste besoin de définir ce contrôleur comme contrôleur d'enregistrement

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

Dans votre routes.rb

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

grâce ce que je cherchais – stephenmurdoch

+1

Il ne Je sais que fonctionne plus ... – nverinaud

+4

@nverinaud il a été plus d'un an que vous avez des commentaires, mais, juste En guise de tête, vous pouvez résoudre cela en utilisant 'authenticate_scope!' à la place. –

4

Il n'a pas travaillé pour moi parce que authenticate_user! n'est pas appelé.

Je l'ai fixé cette façon:

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

Vous avez un bon point ici, généralement une application Rails standard n'utilise pas Devise pour chaque action, donc votre solution est très valide. C'est ce qui a fonctionné pour moi. – Puce