Rails mysql2,未定义的方法'accept',用于rake db:migrate上的nil:NilClass

时间:2019-05-31 18:23:19

标签: ruby-on-rails rubygems

所以我正在Gemfile中具有以下内容的Rails应用程序中工作:

  

gem'mysql2','<0.4'

我继续进行以下操作:

  • 捆绑安装
  • rake db:create

从这里我得到

  

在安装mysql2(0.3.21)时发生错误,并且Bundler无法   继续。

所以我将其更新为

  

gem'mysql2','〜> 0.4.10'

运行捆绑包安装并耙db:create。

所以我最终得到

  

LoadError:请安装mysql2适配器:gem install activerecord-mysql2-adapter(无法激活mysql2(〜> 0.3.10),   已经激活mysql2-0.4.10。确保添加了所有依赖项   到Gemfile。)

     

Gem :: LoadError:无法激活mysql2(〜> 0.3.10),已经激活   mysql2-0.4.10。确保所有依赖项都已添加到Gemfile。

如果从这里尝试Rails控制台,我最终会得到:

  

block (2 levels) in replace_gem': Please install the mysql2 adapter: gem install activerecord-mysql2-adapter`(无法激活mysql2(〜>   0.3.10),已激活mysql2-0.4.10。确保所有依赖项都已添加到Gemfile。)(LoadError)

所以我将我的gemfile更新为:

  

gem'mysql2','〜> 0.4.10'   gem'activerecord-mysql2-adapter'

Rails控制台可以运行,但rake db:migrate结果在

  耙子中止了! NoMethodError:未定义的方法“接受”   nil:NilClass

我为解决方案找到的所有内容都是删除activerecord-mysql2-adapter ...这是行不通的。

作为参考,我使用的是:ruby 2.3.5,rails 3.2.22.5

1 个答案:

答案 0 :(得分:0)

如果您使用的是过时的Rails版本(并且3.2已经过时了已经过时),则需要使用兼容版本的mysql2。如果那是0.3.21,那么:

gem 'mysql2', '~> 0.3.21'

没有其他办法。