我有一個在側面(完全單獨在/博客)銷售的wordpress博客的rails應用程序。對一個不同的數據庫和表進行一次性查詢
客戶端需要到rails應用程序主頁上的最新博客文章,所以我需要對wordpress數據庫執行一次性mysql查詢。我將如何去在rails應用程序中執行此操作。就數據庫而言,新聞是完全從軌道上傳出來的。
乾杯。
我有一個在側面(完全單獨在/博客)銷售的wordpress博客的rails應用程序。對一個不同的數據庫和表進行一次性查詢
客戶端需要到rails應用程序主頁上的最新博客文章,所以我需要對wordpress數據庫執行一次性mysql查詢。我將如何去在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 ...")
是什麼樣這樣做的好處在於,現在你有一個很好的地方定義的方法(在博客類,作爲類方法)來獲取數據,就像我上面所做的那樣。
這兩種策略都應該適用於Rails 2.x或3.x。