gpt4 book ai didi

mysql - 在 RoR 中以惯用的方式连接到外部数据库?

转载 作者:行者123 更新时间:2023-11-29 00:41:37 25 4
gpt4 key购买 nike

我正在创建一个 RoR 应用程序,需要连接到我公司的 MySQL 数据库(它与这个应用程序本身无关)以收集一些数据并通过 RoR 应用程序报告。连接到该数据库的惯用方式是什么?我将只运行一些相当精简的 select 查询,但它们通常涉及表连接。我是否应该直接连接,因为这不是 RoR 应用程序?

最佳答案

如果您的查询主要绑定(bind)到单个表或仅使用几个连接,您实际上可以为它们定义模型。看起来允许 ActiveRecord 对它们进行操作可能是在 Rails 中执行此操作的最惯用的方法。

首先,在您的database.yml

中定义公司数据库
class ExternalDbTable
# Connect to the db
establish_connection :connx_from_database_yml

# Define table if this query is bound to a single table
set_table_name 'ext_db_table'
set_primary_key 'pk_column'
end

从那里,您可以像使用 Rails 模型一样定义 named_scope,基本上可以享受 ActiveRecord 的所有好处。如果您不必访问外部数据库上的多个表,您可以为每个表创建模型并定义 has_many/belongs_to 关系,就像您通常在 ActiveRecord 中所做的那样。但是,如果它是大量表并且您能够在外部数据库上创建 View ,则可以创建一个模型指向为您执行连接的 View 。然后根据需要针对 View 定义 named_scope

关于mysql - 在 RoR 中以惯用的方式连接到外部数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12040238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com