52 votes

Comment connecter un utilisateur à l'aide de Devise à partir d'une console Rails?

Après avoir chargé la console Rails, comment dois-je me connecter à un utilisateur?

Devise fournit un assistant de test qui peut être utilisé dans les tests et j'ai essayé d'utiliser dans la console:

 >> include Devise::TestHelpers
>> helper.sign_in(User.first)
 

Mais je reçois:

 NoMethodError: undefined method `env' for nil:NilClass
 

Quoi qu'il en soit, je voudrais utiliser le véritable assistant de conception et non cet assistant de test. Y'a-t-il une quelconque façon de réussir cela?

87voto

Brian Deterling Points 7778

Voici une façon dont j'ai pu le faire:

 >> ApplicationController.allow_forgery_protection = false
>> app.post('/sign_in', {"user"=>{"login"=>"login", "password"=>"password"}})
 

Ensuite, vous pouvez faire:

  >> app.get '/some_other_path_that_only_works_if_logged_in'
 >> pp app.response.body
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X