我有一个 Rails 应用程序,侧面有一个 WordPress 博客(完全单独位于 /blog)。
客户想要 Rails 应用程序主页上的最新博客文章,因此我需要对 word-press 数据库进行一次性 mysql 查询。我将如何在 Rails 应用程序中执行此操作。 word-press 在数据库方面与rails 完全分离。
Cheers.
假设可以使用相同的数据库凭据并在同一个 MySQL 服务器上进行访问,最简单的方法是运行一个查询,指定数据库和表FROM
查询子句,如下所示:
ActiveRecord::Base.connection.select_one(
"SELECT * FROM blog_database.posts ORDER BY created_at DESC LIMIT 1")
select_one
将返回列的哈希值。有关您可以使用的方法的更多信息connection
对象,参见本文档 http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/DatabaseStatements.html.
第二个选项是创建 ActiveRecord 的子类并调用establish_connection
:
class Blog < ActiveRecord::Base
establish_connection :blog
def self.most_recent_post
connection.select_one("SELECT * FROM posts ...")
end
end
您还需要制作一个blog
您的数据库条目database.yml
文件。看建立连接 http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-c-establish_connection有关更多详细信息,尽管不幸的是,以这种方式使用它实际上只能通过查看源代码来了解establish_connection
.
然后您可以在查询中使用博客数据库连接,如下所示:
Blog.connection.select_one("SELECT * FROM posts ...")
这样做的好处是现在您有一个很好的地方来定义一个方法(在 Blog 类中,作为类方法)来获取数据,正如我上面所做的那样。
这两种策略都应该适用于 Rails 2.x 或 3.x。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)