Förutsatt att den är tillgänglig med samma databasuppgifter och på samma MySQL-server, skulle det enklaste sättet vara att köra en fråga som anger databasen och tabellen i FROM
satsen i frågan, som sådan:
ActiveRecord::Base.connection.select_one(
"SELECT * FROM blog_database.posts ORDER BY created_at DESC LIMIT 1")
select_one
returnerar en hash av kolumner till värden. För mer information om metoder som du kan använda på connection
objekt, se denna dokumentation
.
Det andra alternativet är att skapa en underklass av ActiveRecord och anropa establish_connection
:
class Blog < ActiveRecord::Base
establish_connection :blog
def self.most_recent_post
connection.select_one("SELECT * FROM posts ...")
end
end
Du måste också skapa en blog
databaspost i din database.yml
fil. Se establish_connection
för mer information, även om det tyvärr bara är känt att använda det på detta sätt genom att titta på källkoden för establish_connection
.
Sedan kan du använda bloggdatabasanslutningen i frågor, som så:
Blog.connection.select_one("SELECT * FROM posts ...")
Det som är bra med att göra det på det här sättet är att du nu har ett bra ställe att definiera en metod (i Blog-klassen, som en klassmetod) för att hämta data, som jag har gjort ovan.
Båda dessa strategier borde fungera bra med Rails 2.x eller 3.x.