2010-10-18 74 views
6

我有一個在側面(完全單獨在/博客)銷售的wordpress博客的rails應用程序。對一個不同的數據庫和表進行一次性查詢

客戶端需要到rails應用程序主頁上的最新博客文章,所以我需要對wordpress數據庫執行一次性mysql查詢。我將如何去在rails應用程序中執行此操作。就數據庫而言,新聞是完全從軌道上傳出來的。

乾杯。

回答

9

假設它是使用相同的數據庫憑據和相同的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。

相關問題