Ervan uitgaande dat het toegankelijk is met dezelfde databasereferenties en op dezelfde MySQL-server, zou de eenvoudigste manier zijn om een query uit te voeren die de database en tabel specificeert in de FROM
clausule van de query, als zodanig:
ActiveRecord::Base.connection.select_one(
"SELECT * FROM blog_database.posts ORDER BY created_at DESC LIMIT 1")
select_one
retourneert een hash van kolommen naar waarden. Voor meer informatie over methoden die u kunt gebruiken op de connection
object, zie deze documentatie
.
De tweede optie is om een subklasse van ActiveRecord aan te maken en establish_connection
aan te roepen :
class Blog < ActiveRecord::Base
establish_connection :blog
def self.most_recent_post
connection.select_one("SELECT * FROM posts ...")
end
end
Je moet ook een blog
maken database-invoer in uw database.yml
het dossier. Zie establish_connection
voor meer details, hoewel helaas het gebruik op deze manier eigenlijk alleen bekend is door te kijken naar de broncode voor establish_connection
.
Dan kunt u de blog-databaseverbinding gebruiken in zoekopdrachten, zoals:
Blog.connection.select_one("SELECT * FROM posts ...")
Wat leuk is om het op deze manier te doen, is dat je nu een mooie plek hebt om een methode te definiëren (in de Blog-klasse, als een klassenmethode) om de gegevens op te halen, zoals ik hierboven heb gedaan.
Beide strategieën zouden goed moeten werken met Rails 2.x of 3.x.