En supposant qu'il soit accessible en utilisant les mêmes informations d'identification de base de données et sur le même serveur MySQL, le moyen le plus simple serait d'exécuter une requête en spécifiant la base de données et la table dans le FROM
clause de la requête, en tant que telle :
ActiveRecord::Base.connection.select_one(
"SELECT * FROM blog_database.posts ORDER BY created_at DESC LIMIT 1")
select_one
renverra un hachage de colonnes aux valeurs. Pour plus d'informations sur les méthodes que vous pouvez utiliser sur la connection
objet, voir cette documentation
.
La deuxième option consiste à créer une sous-classe d'ActiveRecord et à appeler establish_connection
:
class Blog < ActiveRecord::Base
establish_connection :blog
def self.most_recent_post
connection.select_one("SELECT * FROM posts ...")
end
end
Vous devrez également créer un blog
entrée de base de données dans votre database.yml
dossier. Voir establish_connection
pour plus de détails, bien que malheureusement l'utiliser de cette manière ne soit vraiment connu qu'en regardant le code source de establish_connection
.
Ensuite, vous pouvez utiliser la connexion à la base de données du blog dans les requêtes, comme suit :
Blog.connection.select_one("SELECT * FROM posts ...")
Ce qui est bien de le faire de cette façon, c'est que vous avez maintenant un endroit agréable pour définir une méthode (dans la classe Blog, en tant que méthode de classe) pour récupérer les données, comme je l'ai fait ci-dessus.
Ces deux stratégies devraient bien fonctionner avec Rails 2.x ou 3.x.