J'essaie simplement d'obtenir le plus fondamental de la coque de base d'une application Rails exécutée sous 3,1, et je reçois cette erreur étrange lorsque je exécute Bundle Exec Rake DB: migrate- Tous les messages que j'ai lus ici et ailleurs disent que je devrais utiliser le nouvel adaptateur mysql2 pour les rails 3.1, donc j'ai - p> dans mon gemfile. Certains post ont suggéré d'utiliser - P> mais cela me fait la même erreur. Le gemme est installé à - p> Place.find(:all)
ArgumentError: wrong number of arguments (3 for 2)
from /Users/mark/.rvm/gems/ruby-1.9.2-p180@rails310pre/gems/mysql2-0.2.7/lib/active_record/connection_adapters/mysql2_adapter.rb:634:in `select'
from /Users/mark/.rvm/gems/ruby-1.9.2-p180@rails310pre/gems/activerecord-3.1.0.rc5/lib/active_record/connection_adapters/abstract/database_statements.rb:9:in `select_all'
from /Users/mark/.rvm/gems/ruby-1.9.2-p180@rails310pre/gems/activerecord-3.1.0.rc5/lib/active_record/connection_adapters/abstract/query_cache.rb:62:in `select_all'
from /Users/mark/.rvm/gems/ruby-1.9.2-p180@rails310pre/gems/activerecord-3.1.0.rc5/lib/active_record/base.rb:470:in `find_by_sql'
from /Users/mark/.rvm/gems/ruby-1.9.2-p180@rails310pre/gems/activerecord-3.1.0.rc5/lib/active_record/relation.rb:111:in `to_a'
from /Users/mark/.rvm/gems/ruby-1.9.2-p180@rails310pre/gems/activerecord-3.1.0.rc5/lib/active_record/relation/finder_methods.rb:155:in `all'
from /Users/mark/.rvm/gems/ruby-1.9.2-p180@rails310pre/gems/activerecord-3.1.0.rc5/lib/active_record/relation/finder_methods.rb:105:in `find'
from /Users/mark/.rvm/gems/ruby-1.9.2-p180@rails310pre/gems/activerecord-3.1.0.rc5/lib/active_record/base.rb:437:in `find'
from (irb):2
from /Users/mark/.rvm/gems/ruby-1.9.2-p180@rails310pre/gems/railties-3.1.0.rc5/lib/rails/commands/console.rb:45:in `start'
from /Users/mark/.rvm/gems/ruby-1.9.2-p180@rails310pre/gems/railties-3.1.0.rc5/lib/rails/commands/console.rb:8:in `start'
from /Users/mark/.rvm/gems/ruby-1.9.2-p180@rails310pre/gems/railties-3.1.0.rc5/lib/rails/commands.rb:40:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
4 Réponses :
Cela m'a aussi eu de me tirer les cheveux. Pour seulement une solution raisonnable, je pourrais obtenir était de passer à la branche principale de la gemme MySQL2. P>
GEM 'mysql2',: git => 'git: //github.com/brianmario/mysql2.git' p>
Après cette mise à jour, mes rails 3.1.0.RC5 peuvent commencer par MySQL. (Au moment de cet article, la dernière version du GEM était de 0,3.6) p>
Armand, merci d'avoir regardé dans ça! Lorsque j'ajoute cette ligne à mon ensemble Gemfile et exécutez l'ensemble de l'ensemble, je reçois l'erreur suivante lors de la tentative d'accès à l'application: "git: //github.com/bridienmario/mysql2.git (chez Master) n'est pas extrait." Toute autre idée serait appréciée!
J'avais exactement le même problème que l'OP et celui-ci. Merci Armand.
Une très vieille question, alors je suppose que l'affiche originale a déjà résolu le problème. Cependant, au cas où quelqu'un vient à ce poste, essayez de résoudre le premier problème: P>
Veuillez installer l'adaptateur MySQL2:
GEM Installez activerecord-mysql2-adaptateur code> (impossible d'activer MySQL2 (~> 0.3.6), déjà activé MySQL2-0.3.2. Assurez-vous que toutes les dépendances sont ajouté à gemfile.) p> blockQuote>
Ceci est probablement survenu car vous n'exécutez pas vos migrations via Bundle Exec. Essayez d'exécuter
Bundle Exec Rake DB: migrer code>. P>
Enregistrement actif a ses propres exigences sur les versions de Veuillez installer l'adaptateur MySQL2: C'est dit que les rails attendent une version n'oubliez pas de mettre à jour votre paquet après avoir changé votre gemfile. P> MySQL2 code> sont compatibles. Voici le Ligne de code pour Rails 3.1. Vous devez utiliser une version de
mysql2 code> qui répond à ces exigences.
GEM Installez activerecord-mysql2-adaptateur code> (impossible d'activer MySQL2 (~> 0.3.6), déjà activé MySQL2-0.3.2. Assurez-vous que toutes les dépendances sont ajouté à gemfile.) p>
BlockQuote>
mysql2 code> supérieure à 0,6,6 et moins de 0,4,0, mais la version 0.3.2 trouvée. Si vous modifiez votre gemfile pour demander une version dans cette plage, l'enregistrement actif doit être heureux. Peut-être p>
Je sais que c'est un très vieux fil, mais parce que cela se produit toujours dans Google Result un des premiers résultats que je voudrais le mettre à jour avec je devais faire du travail autour de cette question dans les nouvelles versions des rails.
Les erreurs montrent comme suit: p> suivi de: p> J'ai déjà eu le gemme ajouté dans mon gemfile comme indiqué ci-dessous : P> group :production do
gem 'mysql2', '< 0.5'
end
Parfait, ajouter gem 'mysql2', '<0.5' code> a travaillé après avoir essayé presque tout! La partie la plus importante, la spécification de version
'<0.5' code>
Êtes-vous sûr que dans le fichier de migration son
défait code> au lieu de
def auto.up code> ??
Oui, c'est la nouvelle syntaxe 3.1. De haut en bas ont été éliminés. Voir Edgerails .Info / Article / What-New-New-in-Edge-Rails / 2011/05/06 / ... pour plus de détails.