Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.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 建立连接不适用于Ruby控制台_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 建立连接不适用于Ruby控制台

Ruby on rails 建立连接不适用于Ruby控制台,ruby-on-rails,ruby,Ruby On Rails,Ruby,我已经配置了database.yml,将“logging\u development”作为表示另一个数据库的标签。其中一个模型是使用“建立连接”来使用此“标签”连接到数据库 我的模型如下所示: 类AdHistory

我已经配置了
database.yml
,将“logging\u development”作为表示另一个数据库的标签。其中一个模型是使用“建立连接”来使用此“标签”连接到数据库

我的模型如下所示:

类AdHistory 建立连接“日志记录”{RAILS\u ENV}

Rails服务器在启动并建立模型与相关数据库的连接时工作正常。但是当我启动ruby控制台并尝试使用该模型时,它使用
database.yml
中的“development”标签来建立连接。我已经调查过这个问题,但找不到解决办法。以下是
数据库.yml
文件的示例:

development:
  adapter: mysql
  encoding: utf8
  reconnect: true
  database: ad_production
  pool: 5
  username: root
  password: ********
  socket: /tmp/mysql.sock

logging_development:
  adapter: mysql
  encoding: utf8
  reconnect: true
  database: ad_logging
  pool: 5
  username: root
  password: ********
  socket: /tmp/mysql.sock

我正在使用Ruby 1.8.7和Rails 2.3.8

在运行Rails控制台时,您是否使用了Rails\u ENV=logging\u开发?如果不是,您应该这样做,因为默认的Rails环境是
development
。因此,尝试使用以下命令加载控制台以设置RAILS_ENV变量:


RAILS\u ENV=logging\u开发脚本/RAILS控制台

我找到了问题的答案。问题是我使用的是Multi_DB gem,它截取了所有正在执行的SQL查询,并将这些查询重新定向到从属数据库。这就是为什么没有对我在“database.yml”中选择的数据库执行这些查询。一旦multi_db连接为空,控制台将按预期运行。使用“multi_db”gem的一个问题是它只接受连接名为“_slave_database”。因此,任何与database.yml文件中multi_db gem的预期名称的偏差都将导致错误,并且查询将不会针对所选数据库执行。

Hi Ricardo,我理解您所说的ruby console的默认“开发”环境。模型加载“logging#{RAILS_ENV}”。因此,即使默认环境是开发,它也应该能够连接到“logging_development”。我只是更新了我的问题以使其更清楚。这很奇怪,但当我从database.yml文件中删除“development”标签时,模型就能够连接到相关的数据库。有什么线索吗?