अगर मैं सही तरीके से जा रहा हूँ तो:
वर्तमान क्वेरी
Model.select(:rating)
ऑब्जेक्ट की सरणी लौटा रहा है और आपने क्वेरी लिखी है
Model.select(:rating).uniq
uniq को ऑब्जेक्ट की सरणी पर लागू किया जाता है और प्रत्येक ऑब्जेक्ट में अद्वितीय आईडी होती है। यूनीक अपना काम सही ढंग से कर रहा है क्योंकि एरे में प्रत्येक ऑब्जेक्ट यूनीक है।
अलग रेटिंग का चयन करने के कई तरीके हैं:
Model.select('distinct rating').map(&:rating)
या
Model.select('distinct rating').collect(&:rating)
या
Model.select(:rating).map(&:rating).uniq
या
Model.select(:name).collect(&:rating).uniq
एक और बात, पहली और दूसरी क्वेरी: SQL क्वेरी द्वारा अलग-अलग डेटा ढूंढें।
इन प्रश्नों को "लंदन" और "लंदन" माना जाएगा, इसका मतलब है कि यह अंतरिक्ष की उपेक्षा करेगा, इसीलिए यह आपके क्वेरी परिणाम में एक बार 'लंदन' का चयन करेगा।
तीसरा और आगे का प्रश्न:
SQL क्वेरी द्वारा और अलग-अलग डेटा लागू रूबी uniq mehtod के लिए डेटा खोजें। इन प्रश्नों को "लंदन" और "लंदन" अलग माना जाएगा, इसीलिए यह आपके क्वेरी परिणाम में 'लंदन' और 'लंदन' दोनों का चयन करेगा।
कृपया अधिक समझ के लिए संलग्न छवि को पसंद करें और "टूरेड / प्रतीक्षा कर रहे आरएफपी" पर एक नज़र डालें।