- ऐसे
has_many
औरbelongs_to
द्वारा परिभाषित उन लोगों के रूपDo संघ के तरीकों, उपयोग
ActiveRecord::Relation
संभव है?यह एक संघ के लिए ActiveRecord :: रिलेशन वस्तु पाने के लिए यदि हां, तो
ActiveRecord::Relation
ऑब्जेक्ट का उपयोग किया जा रहा है।
हम सब जानते हैं कि रेल 3 भारी ActiveRecord::Relation
वस्तुओं, और पृष्ठभूमि में Arel::Relation
वस्तुओं उपयोग कर रहा है, जब Query Interface का उपयोग करके क्वेरी बना रहे हैं। जब भी हम select
, joins
, क्वेरी इंटरफ़ेस के विधियों का उपयोग करते हैं, तो ActiveRecord::Relation
ऑब्जेक्ट वापस आ जाता है। हालांकि, यह मॉडल की एसोसिएशन विधि को कॉल करते समय ऐसा प्रतीत नहीं होता है। इसके बजाए, क्वेरी को तत्काल निष्पादित किया जाता है और एक उदाहरण, या संबंधित मॉडल के उदाहरणों की एक सरणी लौटा दी जाती है।
पर विचार करें निम्नलिखित मॉडल:
post.rb
class Post < ActiveRecord::Base
belongs_to :user
end
user.rb
class user < ActiveRecord::Base
has_many :posts
end
उदाहरण:
u = User.first
u.posts
012 कॉलिंगActiveRecord::Relation
का एक उदाहरण नहीं, पदों की एक सरणी देता है। मुझे आश्चर्य है कि प्राप्त करना संभव है जो एसोसिएशन द्वारा उपयोग किया जा रहा है, यदि इसका उपयोग किया जा रहा है, तो शायद Arel::Table
का उपयोग करके?
ActiveRecord::Relation
चाहते हैं कि मेरा तर्क स्पष्ट होना चाहिए: ऐसा इसलिए है क्योंकि मैं मौजूदा संगठन को बंद करना चाहता हूं और एक अलग उद्देश्य के अनुरूप क्वेरी में हेरफेर करना चाहता हूं।
इसे प्यार करें। बहुत साफ! मैं आपको चेकमार्क दे रहा हूं। और मैं एरियल दस्तावेज के बारे में सहमत हूं। मैं इसके बारे में सभी जगहों पर स्क्रैप्स और बिट्स पढ़ रहा हूं। यह बहुत शक्तिशाली लगता है, लेकिन अच्छे दस्तावेज़ीकरण के बिना, यह भी काफी परेशान हो सकता है। :) – John
शानदार, बहुत बहुत धन्यवाद! –
क्या मैंने बनाया एक कस्टम सरणी पर '.scoped' को कॉल करने का कोई तरीका है? – brittohalloran