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