का वास्तविक लाभ क्या है मैंने किसी भी ActiveRecord क्लास विधि पर किसी दायरे के लाभ को खोजने का प्रयास करने वाले 10 से अधिक पृष्ठों को देखा है जो ActiveRecord :: Relation देता है।स्कॉप्स
उदाहरण के लिए निम्नलिखित में क्यों है जो एक ही काम करते हैं यह नीचे विकल्प की तुलना में बेहतर स्कोप हैं:
#scope :pat1, lambda {{:conditions => ["name like ?", 'J%']}}
#scope :pat2, lambda {{:conditions => ["id > 5"]}}
def self.pat1
where("name like ?", 'J%')
end
def self.pat2
where("id > 5")
end
def patx
self.class.pat1.pat2.first
end
प्रलेखन बार बार कहता है कि स्कोप फायदेमंद होते हैं, क्योंकि वे श्रृंखलित जा सकता है ...
"सभी स्कोप विधियां एक ActiveRecord :: रिलेशन ऑब्जेक्ट लौटाएंगी जो आगे के तरीकों (जैसे अन्य स्कोप) को इसके लिए बुलाएगी।" - guides.rubyonrails.org
... लेकिन विकल्प के ऊपर भी उत्पादन श्रृंखलित जा सकता है "मुख्य कारण स्कोप सादा वर्ग तरीकों से बेहतर हैं कि वे अन्य तरीकों के साथ श्रृंखलित किया जा सकता है" एक ही परिणाम।
बस यह पता लगाने की कोशिश कर रहा है कि यहां सम्राट की नई कपड़े चीजें चल रही हैं या नहीं। एक वाक्य रचनात्मक दृष्टिकोण से भी कोई फायदा नहीं होता है। क्या वे तेजी से हैं- कुछ स्रोत अस्पष्ट रूप से सुझाव देते हैं।
अरेल मुझे लगता है कि ActiveRecord :: संबंध है। ठीक। वाक्य रचनात्मक लाभ मेरे लिए बहस योग्य लगते हैं। लेकिन अगर वे ऐसा कुछ कर रहे थे जो मानक संस्करण पिछले संस्करणों में नहीं कर सका तो यह बताता है। – Mark
बेहतर वाक्यविन्यास का उपयोग कर रेल के साथ महत्वपूर्ण है। दिन 1 (या यहां तक कि 100) पर कोड बेस के लिए नहीं बल्कि दिन 1000 पर कोड बेस के लिए। –