Hvis det antages, at det er tilgængeligt ved hjælp af de samme database-legitimationsoplysninger og på den samme MySQL-server, ville den nemmeste måde være at køre en forespørgsel, der specificerer databasen og tabellen i FROM
klausul i forespørgslen, som sådan:
ActiveRecord::Base.connection.select_one(
"SELECT * FROM blog_database.posts ORDER BY created_at DESC LIMIT 1")
select_one
returnerer en hash af kolonner til værdier. For mere information om metoder, du kan bruge på connection
objekt, se denne dokumentation
.
Den anden mulighed er at oprette en underklasse af ActiveRecord og kalde establish_connection
:
class Blog < ActiveRecord::Base
establish_connection :blog
def self.most_recent_post
connection.select_one("SELECT * FROM posts ...")
end
end
Du skal også lave en blog
databaseindtastning i din database.yml
fil. Se establish_connection
for flere detaljer, selvom det desværre kun er kendt at bruge det på denne måde ved at se på kildekoden for establish_connection
.
Så kan du bruge blogdatabaseforbindelsen i forespørgsler, som sådan:
Blog.connection.select_one("SELECT * FROM posts ...")
Det, der er rart ved at gøre det på denne måde, er, at du nu har et godt sted at definere en metode (i Blog-klassen, som en klassemetode) til at hente dataene, som jeg har gjort ovenfor.
Begge disse strategier burde fungere fint med Rails 2.x eller 3.x.