gpt4 book ai didi

mysql - 对不同的数据库和表进行一次性查询

转载 作者:可可西里 更新时间:2023-11-01 06:43:21 25 4
gpt4 key购买 nike

我有一个 Rails 应用程序,旁边有一个 wordpress 博客(完全独立于/blog)。

客户想要 Rails 应用主页上的最新博客文章,因此我需要对 word-press 数据库执行一次性 mysql 查询。我将如何在 Rails 应用程序中执行此操作。 word-press 在数据库方面完全独立于 rails。

干杯。

最佳答案

假设可以使用相同的数据库凭据和在相同的 MySQL 服务器上访问它,最简单的方法是运行一个查询,在查询的 FROM 子句中指定数据库和表,这样:

ActiveRecord::Base.connection.select_one(
"SELECT * FROM blog_database.posts ORDER BY created_at DESC LIMIT 1")

select_one 将返回列的散列值。有关可以在 connection 对象上使用的方法的更多信息,请参阅 this documentation .

第二个选项是创建 ActiveRecord 的子类并调用 establish_connection:

class Blog < ActiveRecord::Base
establish_connection :blog

def self.most_recent_post
connection.select_one("SELECT * FROM posts ...")
end
end

您还需要在database.yml 文件中创建一个blog 数据库条目。参见 establish_connection了解更多详细信息,尽管不幸的是,实际上只有通过查看 establish_connection 的源代码才能知道以这种方式使用它。

然后你可以在查询中使用博客数据库连接,像这样:

Blog.connection.select_one("SELECT * FROM posts ...")

这样做的好处是现在您可以在一个很好的地方定义一个方法(在 Blog 类中,作为类方法)来获取数据,就像我在上面所做的那样。

这两种策略都应该适用于 Rails 2.x 或 3.x。

关于mysql - 对不同的数据库和表进行一次性查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3958402/

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