Za předpokladu, že je přístupný pomocí stejných přihlašovacích údajů k databázi a na stejném serveru MySQL, nejjednodušším způsobem by bylo spustit dotaz specifikující databázi a tabulku v FROM
klauzule dotazu jako taková:
ActiveRecord::Base.connection.select_one(
"SELECT * FROM blog_database.posts ORDER BY created_at DESC LIMIT 1")
select_one
vrátí hodnotu hash sloupců. Další informace o metodách, které můžete použít na connection
objekt, viz tuto dokumentaci
.
Druhou možností je vytvořit podtřídu ActiveRecord a zavolat establish_connection
:
class Blog < ActiveRecord::Base
establish_connection :blog
def self.most_recent_post
connection.select_one("SELECT * FROM posts ...")
end
end
Budete si také muset vytvořit blog
záznam databáze ve vašem database.yml
soubor. Viz establish_connection
pro více podrobností, i když bohužel použití tímto způsobem je skutečně známo pouze pohledem na zdrojový kód pro establish_connection
.
Pak můžete použít připojení k databázi blogu v dotazech, například:
Blog.connection.select_one("SELECT * FROM posts ...")
Na tom, jak to udělat tímto způsobem, je hezké, že nyní máte pěkné místo pro definování metody (ve třídě Blog jako metodu třídy) pro načítání dat, jak jsem to udělal výše.
Obě tyto strategie by měly fungovat dobře s Rails 2.x nebo 3.x.