J'utilise Devise 1.0.11 avec Rails 2.3.8. J'ai une configuration où je veux connecter un utilisateur automatiquement par une action de contrôleur qui ressemble à ceciDevise with Rails 2.3.8 produit une erreur de désérialisation après un sign_in manuel d'un utilisateur
def select_private
reset_session
private_user = User.find_by_identifier "PRIVATE"
sign_in :user, private_user
redirect_to a_page_that_needs_authentication_of_a_user_url
end
le test pour cela ressemble à cela et fonctionne très bien
test "select the private customer" do
get '/'
assert_response :success
get_via_redirect '/select/private'
assert_response :success
assert_equal path, '/shirt'
end
Mais quand je suis en train cette sur mon serveur Mongrel local, je reçois une erreur methodNotFound
undefined method `find' for Symbol:Class
après la redirection vers le page_that_needs_authentication_of_a_user avec la trace de pile suivante de la dernière quelques lignes intéressantes
gems/devise-1.0.11/lib/devise/rails/warden_compat.rb:23:in `deserialize'
gems/[email protected]/gems/warden-1.0.3/lib/warden/session_serializer.rb:31:in `fetch'
gems/warden-1.0.3/lib/warden/proxy.rb:182:in `user'
gems/warden-1.0.3/lib/warden/proxy.rb:270:in `_perform_authentication'
gems/warden-1.0.3/lib/warden/proxy.rb:113:in `authenticate!'
gems/devise-1.0.11/lib/devise/controllers/helpers.rb:207:in `authenticate_user!'
L'action qui est rendue appelle l'authenticate_user! en tant que before_filter, fonctionne très bien lorsqu'il est accessible via le nouveau formulaire de connexion de Session # normal.
Serait-ce un bug, ou avez-vous d'autres idées?