क्या कोई मुझे uniq
और distinct
विधियों के बीच उपयोग में अंतर को संक्षेप में समझा सकता है?रेल: uniq बनाम विशिष्ट
मैंने दोनों को समान संदर्भ में उपयोग किया है, लेकिन अंतर मेरे लिए बिल्कुल स्पष्ट नहीं है।
क्या कोई मुझे uniq
और distinct
विधियों के बीच उपयोग में अंतर को संक्षेप में समझा सकता है?रेल: uniq बनाम विशिष्ट
मैंने दोनों को समान संदर्भ में उपयोग किया है, लेकिन अंतर मेरे लिए बिल्कुल स्पष्ट नहीं है।
.distinct
विधि एसक्यूएल क्वेरी.uniq
विधि सरणी के लिए हैइसके अलावा क्वेरी एक सरणी में कार्य करता है, इस प्रकार .uniq
.distinct
रूप में एक ही परिणाम पैदा करता है कृपया ध्यान रखें रेल में है कि रेल 5+ संबंध # uniq को बहिष्कृत किया गया है और इसके बजाय संबंध # विशिष्ट का उपयोग करने की अनुशंसा की जाती है। http://edgeguides.rubyonrails.org/5_0_release_notes.html#active-record-deprecations
देखेंdocumentation से:
uniq(value = true)
उर्फ के लिए
ActiveRecord::QueryMethods#distinct
इसके बिल्कुल आपके सवाल का जवाब नहीं है, लेकिन क्या मुझे पता है:
अगर हम पर विचार ActiveRecord संदर्भ तब uniqविशिष्ट के लिए सिर्फ एक उपनाम है। और दोनों क्वेरी परिणाम सेट पर डुप्लिकेट को हटाने के रूप में काम करते हैं (जिसे आप एक स्तर तक कह सकते हैं)।
और सरणी संदर्भ यूनिक इतना शक्तिशाली है कि यह तत्वों को घोंसले के बावजूद डुप्लिकेट हटा देता है। उदाहरण के लिए
आगमन = [[ "पहली"], [ "दूसरी"], [ "पहली"]]
और हम
arr.uniq
करते हैं जवाब होगा: [["पहला"], ["दूसरा"]]
तो यदि तत्व ब्लॉक हैं तो भी यह गहरे में जाएगा और डुप्लीकेट हटा देगा।
उम्मीद है कि यह आपको कुछ तरीकों से मदद करता है।