nil的未定义方法`accept':rake db:migrate上的NilClass

时间:2012-02-11 23:37:09

标签: ruby-on-rails ruby mysql2

使用ruby-1.9.2和rails 3.2.1。 mysql2的版本是0.2.7。

运行rake db:migrate时出现错误: "未定义的方法`接受'为零:NilClass:"

跟踪包括:

gems / activerecord-3.2.1 / lib / active_record / connection_adapters / abstract / database_statements.rb:7:在`to_sql'

7 个答案:

答案 0 :(得分:28)

更改您的Gemfile

gem 'activerecord-mysql2-adapter'

为:

gem 'mysql2'

答案 1 :(得分:11)

好的,我修好了我的机器。这是因为MySQL2较旧。这样做可以解决问题。

bundle update mysql2

        Or

bundle update

有关详细信息,请访问Github

答案 2 :(得分:10)

通过删除我 gem'activerecord-mysql2-adapter' 来自Gem File制定了

答案 3 :(得分:1)

安装最新的mysql2 ruby​​ gem。 我的环境:

答案 4 :(得分:1)

由于您的mysqlruby版本不兼容,可能会发生这种情况。

要解决此问题,请通过gem install mysql更新您的mysql gem,它将安装最新的mysql gem。

然后在Gemfile

中添加此内容

如果问题仍然存在,那么你应该看到你的ruby和mysql之间的兼容性

答案 5 :(得分:0)

如果您在database.yaml文件中有以下内容,则会得到此信息:

dev:
  adapter: mysql2

它应该是(即使您使用的gem是mysql2):

dev:
  adapter: mysql

花了我一个多星期来解决这个问题,我希望它可以节省你一些时间。

答案 6 :(得分:-1)

定义:

def nil.accept
  puts "Accepted."
end

错误将消失。