mysql - Rails mysql2未定义方法 `accept'为nil :NilClass

标签 mysql ruby ruby-on-rails-3 rake migrate

我知道这是一百万次,但尝试了一切,我仍然收到此错误:

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

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

这是 gem 列表(不是全部):

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

最佳答案

Sean 和 Mitch 的两个答案都有助于解决问题:

  • mysql2 gem版本应为0.3.11及以上,并且
  • activerecord-mysql2-adapter 应该从 gemfile 中删除。

想说清楚的是:

  1. 您的 gemfile 应包含以下行(单独删除 activerecord-mysql2-adapter):

    gem 'mysql2'

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

    activerecord-mysql2-adapter (0.0.3)

    mysql2 (0.3.11)

编辑:

当我尝试打开脚手架生成模型的索引时,我也遇到了以下错误:

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

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

关于mysql - Rails mysql2未定义方法 `accept'为nil :NilClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12730190/

相关文章:

php - 没有递归的PHP中的树算法

javascript - 在 JavaScript 函数中传递 Ruby 变量

ruby-on-rails - 链接到 ruby​​ 中的表单

ruby - 为什么 Ruby 中的柯里化(Currying)在我的代码中不起作用?

mysql - 导轨 3 : Writing a Joins Statement for a HABTM Relationship

jquery - 具有可扩展行的可排序表

mysql - `device.id` 在生产中返回 `NULL`,但在开发中工作正常

mysql - mysql中的外键

php - 选择月份中的日期在 30 到 15 之间的所有记录

php - 复选框总是返回一个值