Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Rails3.2.16(Ubuntu)中未加载mysql2 gem(用于手动代码,而不是数据库适配器)_Ruby On Rails_Ruby_Rubygems_Rvm - Fatal编程技术网

Ruby on rails 在Rails3.2.16(Ubuntu)中未加载mysql2 gem(用于手动代码,而不是数据库适配器)

Ruby on rails 在Rails3.2.16(Ubuntu)中未加载mysql2 gem(用于手动代码,而不是数据库适配器),ruby-on-rails,ruby,rubygems,rvm,Ruby On Rails,Ruby,Rubygems,Rvm,我正在PostgreSQL上运行Rails应用程序,但需要执行一些任意的MySQL查询,因此我将gem mysql2包括在Gemfile和bundle install中 代码在本地主机(OSX)上运行良好(连接到MySQL数据库并执行查询)。但是,当我使用RVM部署到服务器(Ubuntu)时,Rails不会加载gem,并给出以下错误: NameError (uninitialized constant Mysql2) 这基本上意味着未加载mysql2。执行将Gem.loaded_specs.k

我正在PostgreSQL上运行Rails应用程序,但需要执行一些任意的MySQL查询,因此我将
gem mysql2
包括在
Gemfile
bundle install

代码在本地主机(OSX)上运行良好(连接到MySQL数据库并执行查询)。但是,当我使用RVM部署到服务器(Ubuntu)时,Rails不会加载gem,并给出以下错误:

NameError (uninitialized constant Mysql2)
这基本上意味着未加载
mysql2
。执行
将Gem.loaded_specs.keys
放入代码中,以确认这一点。奇怪的是,当我使用
rails控制台时,
mysql2
gem加载得很好

我的怀疑是,
mysql2
是Rails用于数据库适配器的宝石之一,因此如果当前数据库适配器未设置为
mysql2
,Rails会很方便地忽略这一点。但我对Rails代码库了解不够,无法验证我的怀疑

更多规格详情:

  • 轨道3.2.16
  • RVM 1.25.27
  • Ubuntu 13.04
  • Ruby 2.1.2
mysql2
gem添加到
Gemfile
的全局部分,而不仅仅限于开发标签

我的
GEM文件的一部分

source 'https://rubygems.org'
gem 'rails', '3.2.16'
gem 'pg'
gem 'mysql2'
....

只需确认,您的gem文件看起来像
group:production do gem'mysql'end
,您是否在config/database.yml中指定了<代码>生产:适配器:mysql2
我想你误解了我的问题。我使用
postgresql
作为适配器,而不是
mysql
。我只想包括gem(就像任何其他gem一样)以使用其功能(即连接到MySQL数据库),请使用gem文件更新您的问题。您是否也在服务器上运行bundle安装?为什么需要使用MySQL?无论如何,我猜Mysql2并不是您所追求的常量。@BroiSatse我更新了我的Gemfile。