Ако приемем, че е достъпен с помощта на същите идентификационни данни за база данни и на същия MySQL сървър, най-лесният начин би бил да изпълните заявка, указваща базата данни и таблицата в FROM
клауза на заявката, като такава:
ActiveRecord::Base.connection.select_one(
"SELECT * FROM blog_database.posts ORDER BY created_at DESC LIMIT 1")
select_one
ще върне хеш от колони към стойности. За повече информация относно методите, които можете да използвате за connection
обект, вижте тази документация
.
Втората опция е да създадете подклас на ActiveRecord и да извикате establish_connection
:
class Blog < ActiveRecord::Base
establish_connection :blog
def self.most_recent_post
connection.select_one("SELECT * FROM posts ...")
end
end
Вие също ще трябва да направите blog
запис в базата данни във вашия database.yml
файл. Вижте establish_connection
за повече подробности, въпреки че за съжаление използването му по този начин наистина е известно само като се погледне изходния код за establish_connection
.
След това можете да използвате връзката с базата данни на блога в заявки, както следва:
Blog.connection.select_one("SELECT * FROM posts ...")
Това, което е хубаво да го правите по този начин, е, че сега имате хубаво място да дефинирате метод (в класа Blog, като метод на клас) за извличане на данните, както направих по-горе.
И двете стратегии трябва да работят добре с Rails 2.x или 3.x.