2010-12-14 5 views
0

Je l'ai référencé Migrating from Authlogic to Devise et je l'ai suivi pour obtenir la structure de base de données requise par concevoir prêt. Cependant je reçois cette erreur sur ma page sign_inProblème lors de la migration d'Authlogic vers Devise

wrong number of arguments (2 for 1) 

Ceci est ma demande:

{"commit"=>"Sign in","authenticity_token"=>"oWXrE+EdhO4ScuaBzPBqCnpYsal1QcDC483ygVSs0fw=","user"=>{"password"=>"password", "email"=>"[email protected]"}} 

J'utilise Rails 2.3.8 et donc en utilisant v 1.0 Concevez.

Ceci est ma session/nouvelle vue:

<% form_for resource_name, resource, :url => session_path(resource_name) do |f| -%> 
    <p><%= f.label :email %></p> 
    <p><%= f.text_field :email %></p> 
    <p><%= f.label :password %></p> 
    <p><%= f.password_field :password %></p> 

    <p><%= f.submit "Sign in" %></p> 
<% end -%> 

Toutes les idées pour que cela fonctionne? Merci !

EDIT

est ici la trace de la pile:

ArgumentError (wrong number of arguments (2 for 1)): 
devise (1.0.8) lib/devise/models/database_authenticatable.rb:139:in `find_for_authentication' 
devise (1.0.8) lib/devise/models/database_authenticatable.rb:117:in `authenticate' 
devise (1.0.8) lib/devise/strategies/database_authenticatable.rb:16:in `authenticate!' 
warden (1.0.3) lib/warden/strategies/base.rb:53:in `_run!' 
warden (1.0.3) lib/warden/proxy.rb:303:in `_run_strategies_for' 
warden (1.0.3) lib/warden/proxy.rb:298:in `each' 
warden (1.0.3) lib/warden/proxy.rb:298:in `_run_strategies_for' 
warden (1.0.3) lib/warden/proxy.rb:271:in `_perform_authentication' 
warden (1.0.3) lib/warden/proxy.rb:90:in `authenticate' 
devise (1.0.8) lib/devise/controllers/helpers.rb:36:in `authenticate' 
devise (1.0.8) app/controllers/sessions_controller.rb:19:in `create' 
warden (1.0.3) lib/warden/manager.rb:35:in `call' 
warden (1.0.3) lib/warden/manager.rb:34:in `catch' 
warden (1.0.3) lib/warden/manager.rb:34:in `call' 

Rien à voir avec la dépendance garde?

+0

L'erreur ne semble pas être dans vos sessions/nouvelle vue, tout me semble bien y. Est-ce que l'erreur donne plus de détails dans la "Trace d'application" sur l'endroit où l'erreur s'est produite? – aNoble

Répondre

0

L'erreur semble se produire dans un appel User.find, ce qui est étrange. Avez-vous quelque chose qui pourrait remplacer la méthode de recherche par défaut? Essayez ceci dans la console et voyez si vous obtenez une erreur.

User.find(:first, :conditions=>{:email=>'[email protected]'}) 
1

J'ai eu le même problème, en utilisant gardien 0.10.7 et 1.0.8 concevoir J'ai essayé le User.find dans la console et était OK.

Pour résoudre ce problème, je l'ai enlevé la méthode de classe authenticate sur mon utilisateur Modèle:

#def self.authenticate(login, pass) 
# find(:first, :conditions => ["login = ? AND password = ?", login, sha1(pass)]) 
#end