2 votes

"méthode non définie `accept' pour nil:NilClass"

J'obtiens l'erreur "undefined method `accept' for nil:NilClass" lors de l'exécution de db:migrate. Ma configuration est la suivante

Rails 3.2.8
MySql 5.1.54
OS : win7
ruby : 1.9.2

la sortie de ma commande de liste de gemmes :

F:\RailsApp\MyApp>gem list

*** LOCAL GEMS ***

actionmailer (3.2.8)
actionpack (3.2.8)
activemodel (3.2.8, 3.1.0)
activerecord (3.2.8)
activeresource (3.2.8)
activesupport (3.2.8, 3.1.0)
arel (3.0.2)
bcrypt-ruby (3.0.1 x86-mingw32)
builder (3.0.0)
bundler (1.1.5)
coffee-rails (3.2.2)
coffee-script (2.2.0)
coffee-script-source (1.3.3)
erubis (2.7.0)
execjs (1.4.0)
hike (1.2.1)
i18n (0.6.0)
journey (1.0.4)
jquery-rails (2.0.2)
json (1.7.4)
mail (2.4.4)
mime-types (1.19)
minitest (1.6.0)
multi_json (1.3.6)
mysql (2.8.1 x86-mingw32)
mysql2 (0.3.11 x86-mingw32, 0.2.6 x86-mingw32)
polyglot (0.3.3)
rack (1.4.1, 1.3.6)
rack-cache (1.2)
rack-ssl (1.3.2)
rack-test (0.6.1)
rails (3.2.8)
railties (3.2.8)
rake (0.9.2.2, 0.8.7)
rdoc (3.12, 2.5.8)
sass (3.2.0)
sass-rails (3.2.5)
sprockets (2.1.3)
thor (0.15.4)
tilt (1.3.3)
treetop (1.4.10)
tzinfo (0.3.33)
uglifier (1.2.7)

J'ai également copié le fichier %MYSQLPATH%/bin/libmySQL.dll dans le dossier %RUBYHOME%/bin.

Quelqu'un peut-il m'aider à résoudre ce problème ?

2voto

Anand Soni Points 2326

Finalement, j'ai résolu le problème en me référant à ce post mysql2 gem compilé pour la mauvaise bibliothèque client mysql .

J'ai procédé comme suit :

  1. télécharger et extraire le paquet à partir de http://dev.mysql.com/get/Downloads/Connector-C/mysql-connector-c-noinstall-6.0.2-win32.zip/from/pick

  2. supprimer toutes les gemmes mysql/mysql2 et réinstaller la gemme mysql avec cette commande : gem install mysql --platform=ruby -- --with-mysql-dir=E:/mysql-connector-c-noinstall-6.0.2-win32

  3. ajouter gem 'mysql' dans GemFile

  4. modifier database.yml avec adapter:mysql

  5. copier MYSQLHOME/bin/libmsql.dll dans RUBYHOME/bin

  6. si l'erreur dsl est détectée, ajouter require 'rake/dsl_definition' au début du fichier Rake

et ça marche :-)

Mon dernier fichier GemFile est le suivant :

source 'https://rubygems.org'
gem 'rails', '3.2.3'
gem 'mysql'
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

1voto

PradeepKumar Points 1239

Il peut s'agir d'un problème AR-JDBC. Essayez d'exécuter

bundle update activerecord-jdbc-adapter

Cela peut vous aider.

Si cela n'a pas fonctionné pour vous, essayez avec

bundle update mysql2

Pour plus d'informations, consultez le site Question sur GitHub

1voto

Mayank Jain Points 120

J'ai eu le même problème en corrigeant le fichier database.yml. L'adopteur était mysql2 et je l'ai corrigé en mysql.

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