2010-02-02 13 views
6

एक सरसरी नज़र से, वे, समस्याओं का एक ही सेट करने के लिए बस दो अलग दृष्टिकोण होना दिखाई सिवाय इसके कि नामित स्कोप chainable हैं, जबकि संघ एक्सटेंशन नहीं हैं।एसोसिएशन एक्सटेंशन बनाम नामित स्कॉप्स का उपयोग कब करें?

किसी को भी आगे स्पष्ट करते हैं, या एक उदाहरण है कि एक नामित दायरे से एक संघ के विस्तार के लिए अधिक उपयुक्त होगा प्रदान कर सकते हैं?

उत्तर

11

एसोसिएशन एक्सटेंशन (खोजने जरूरी नहीं), बनाने को अद्यतन करने, आदि के लिए कस्टम तरीकों बनाने के लिए बहुत उपयोगी हैं।

क्योंकि आप proxy_owner, proxy_reflection, proxy_target के लिए उपयोग किया है, तो आप रिश्ते में एक अच्छा हुक है। बाहर रेल डॉक्स की एसोसिएशन एक्सटेंशन अनुभाग

की जांच:

http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

0

हाँ, तुम ठीक कह रहे हैं, मुख्य अंतर यह है कि named_scope के chainable हैं। लेकिन वे मूल रूप से एक ही कार्य करते हैं, यह सिर्फ इतना है कि एसोसिएशन एक्सटेंशन तेज़ हैं।

+2

यह गलत है। आप एसोसिएशन एक्सटेंशन के साथ काफी अलग चीजें कर सकते हैं। – Ben

संबंधित मुद्दे