यह मानते हुए कि यह समान डेटाबेस क्रेडेंशियल्स और उसी 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
. में डेटाबेस प्रविष्टि फ़ाइल। देखें install_connection
अधिक विवरण के लिए, हालांकि दुर्भाग्य से इस तरह से इसका उपयोग करना वास्तव में केवल establish_connection
के स्रोत कोड को देखकर ही जाना जाता है। ।
फिर आप प्रश्नों में ब्लॉग डेटाबेस कनेक्शन का उपयोग कर सकते हैं, जैसे:
Blog.connection.select_one("SELECT * FROM posts ...")
इसे इस तरह से करने में क्या अच्छा है कि अब आपके पास डेटा लाने के लिए एक विधि (ब्लॉग क्लास में, क्लास मेथड के रूप में) को परिभाषित करने के लिए एक अच्छी जगह है, जैसा कि मैंने ऊपर किया है।
इन दोनों रणनीतियों को रेल 2.x या 3.x के साथ ठीक काम करना चाहिए।