2

Rails 在生产中使用的数据库适配器是 PostgreSQL,但我需要在另一台服务器上查询 MySQL 数据库。我在我的 Gemfile 中包含了“mysql2”gem,并且捆绑安装运行良好。

在我的应用程序控制器中client = Mysql2::Client.new(...),我得到了未初始化的常量 ApplicationController::Mysql2。

为什么捆绑器不加载 mysql2 gem?我尝试放入require 'mysql2'应用程序控制器,但找不到文件。

注意我使用的是 ruby​​ 1.9.3p125 和 rails 3.2.1

4

2 回答 2

0

调用establish_connection表示辅助数据库中数据的模型。Rails 应该弄清楚。

Data.establish_connection adapter: 'mysql'  # ...

必须传递的哈希值与数据库配置文件中的哈希值类似。查看文档以获取示例。

于 2012-04-10T14:27:48.507 回答
0

这是一个老问题。但是,假设可以:

client = Mysql2::Client.new(...)

...从 Rails 应用程序中,可以成功建立连接(首先在控制台中尝试)。然后,我会将 mysql 连接放入 Rails 应用程序的 /lib 目录中的一个类中,然后:

require 'yourlib'

..在控制器的顶部。然后你可以在控制器中使用你的类和方法。

您创建的 lib 文件以及您为使用该 lib 文件而编写的代码也可以在 rails 控制台中进行测试。

于 2012-08-09T15:37:28.523 回答