MySQL Rails – 如何从外部数据库访问表格
在本文中,我们将介绍如何在 Ruby on Rails 应用程序中访问外部 MySQL 数据库中的表,以及如何创建 Rails 模型来访问这些表。
阅读更多:MySQL 教程
连接到外部MySQL数据库
要连接到外部 MySQL 数据库,我们需要使用 Rails 内置的ActiveRecord::Base
类的 establish_connection
方法。这个方法的作用是将 ActiveRecord 连接到外部数据库。
class ExternalDbTable < ActiveRecord::Base
establish_connection(
adapter: "mysql2",
host: "external-db.example.com",
database: "external_db",
username: "db_user",
password: "db_password"
)
self.table_name = "table_name_in_external_db"
end
在上面的示例中,我们创建了一个名为 ExternalDbTable
的 ActiveRecord 模型,它连接到一个名为 external_db
的数据库,并且用户名和密码分别是 db_user
和 db_password
。如果需要连接到其他类型的数据库,只需要更改 adapter 的值,并提供相应的数据库信息。
使用模型访问外部表
创建完外部数据库的连接后,我们可以像访问本地数据库的模型一样使用 ExternalDbTable
模型来访问外部 MySQL 数据库中 table_name_in_external_db
表格中的数据。
class ExternalDbController < ActionController::Base
def index
@external_data = ExternalDbTable.all
end
end
在上面的示例中,我们在 ExternalDbController
中创建了一个名为 @external_data
的实例变量,它将使用 ExternalDbTable.all
方法加载所有的外部表格数据。
总结
在 Ruby on Rails 应用程序中访问外部 MySQL 数据库的过程分为两个步骤:首先,使用 establish_connection
方法连接到外部数据库,然后创建和使用 ActiveRecord 模型来访问外部表格。通过这种方式,我们可以轻松地在一个应用程序中访问多个不同的 MySQL 数据库,并且避免了手动连接到外部数据库的麻烦。