2

db:migrateの実行中に、「undefined method `accept'for nil:NilClass」エラーが発生します。私の構成は次のとおりです。

Rails 3.2.8
MySql 5.1.54
OS : win7
ruby : 1.9.2

my gems listコマンドの出力:

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)

また、%MYSQLPATH%/ bin / libmySQL.dllファイルを%RUBYHOME%/binフォルダーにコピーしました。

誰かが私がこの問題を解決するのを手伝ってくれる?

4

3 に答える 3

2

最後に、間違ったmysqlクライアントライブラリ用にコンパイルされたこの投稿mysql2gemを参照して問題を解決しました。

私がしたことは次のとおりです。

  1. http://dev.mysql.com/get/Downloads/Connector-C/mysql-connector-c-noinstall-6.0.2-win32.zip/from/pickからパッケージをダウンロードして抽出します

  2. すべてのmysql/mysql2 gemを削除し、次のコマンドでmysqlgemを再インストールします。 gem install mysql --platform=ruby -- --with-mysql-dir=E:/mysql-connector-c-noinstall-6.0.2-win32

  3. gem 'mysql'GemFileに追加

  4. database.ymlを次のように変更しますadapter:mysql

  5. MYSQLHOME / bin/libmsql.dllをRUBYHOME/binにコピーします

  6. dslエラーが見つかった場合は、RakeFilerequire 'rake/dsl_definition'の先頭に追加します

そしてそれは動作します..:-)

私の最後のGemFileは次のとおりです。

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'
于 2012-08-16T06:04:53.053 に答える
1

これはAR-JDBCの問題である可能性があります。実行してみてください

bundle update activerecord-jdbc-adapter

これはあなたを助けるかもしれません。

うまくいかなかった場合は、

bundle update mysql2

詳細については、GitHubの問題を調べてください

于 2012-08-14T07:26:45.937 に答える
1

database.ymlファイルを修正することで同じ問題を修正しました。それはmysql2として採用者を持っていました今私はそれをmysqlに修正しました

于 2013-04-29T15:17:02.340 に答える