Rails的mysql2未定义的方法'接受”近亲:NilClass(Rails mysql2

2019-08-01 03:40发布

我知道的是,在这里一百万次,但都试过了,我仍然收到此错误:

$ rake db:migrate
rake aborted!
undefined method `accept' for nil:NilClass

Tasks: TOP => db:migrate
(See full trace by running task with --trace)

这是创业板名单(不是全部):

activemodel (3.2.8)
activerecord (3.2.8)
activerecord-mysql2-adapter (0.0.3)
builder (3.1.3, 3.0.3)
bundler (1.2.1)
mysql2 (0.3.2)

rails (3.2.8)
rails_apps_composer (2.2.10)
railties (3.2.8)
rake (0.9.2.2)
rdoc (3.12)
sqlite3 (1.3.6)
therubyracer (0.10.2)
thor (0.16.0)
tilt (1.3.3)
treetop (1.4.10)
twitter-bootstrap-rails (2.1.3)
tzinfo (0.3.33)
uglifier (1.3.0)

我曾尝试与mysql2的所有版本(0.2.7从0.3.2到)

编辑(数据库文件):

development:
  adapter: mysql2
  database: tripwall
  username: root
  password: pass
  host: localhost
  pool: 5
  timeout: 5000

Answer 1:

肖恩和米奇两个答案有助于解决方案:

  • mysql2宝石的版本应该是0.3.11及以上,且
  • ActiveRecord的-mysql2适配器应该从Gemfile中被删除。

想让它明确指出:

  1. 你的Gemfile应包含以下行(除去单独的ActiveRecord-mysql2适配器):

    宝石“mysql2”

  2. gem list应该输出以下行:

    ActiveRecord的-mysql2适配器(0.0.3)

    mysql2(0.3.11)

编辑:

我也得到了下面的错误,当我试图打开支架生成的模型的指标:

NoMethodError (undefined method `accept' for nil:NilClass):
app/controllers/posts_controller.rb:5:in `index'

我不得不重新启动Rails服务器; 而解决了这一问题。



Answer 2:

我只记得我做了什么,当我有它来修复错误。

只是删除

ActiveRecord的-mysql2适配器(0.0.3)

从您的Gemfile!

希望能解决它!

干杯,肖恩



Answer 3:

我不知道为什么,但是当我添加宝石“mysql2”,“> = 0.3.11”和它的作品。 我曾尝试宝石“mysql2”,“0.3.2”,那是行不通的。 还是非常感谢。



Answer 4:

我建议改变localhost to 127.0.0.1 。 请出示你的模型,也许有些领域是MySQL的的关键字



Answer 5:

请添加port: 3306您的database.yml,并127.0.0.1而不是localhost



文章来源: Rails mysql2 undefined method `accept' for nil:NilClass