Jika saya langsung ke jalan maka:
Permintaan saat ini
Model.select(:rating)
mengembalikan array objek dan Anda telah menulis kueri
Model.select(:rating).uniq
uniq diterapkan pada array objek dan setiap objek memiliki id unik. uniq melakukan tugasnya dengan benar karena setiap objek dalam array adalah uniq.
Ada banyak cara untuk memilih peringkat yang berbeda:
Model.select('distinct rating').map(&:rating)
atau
Model.select('distinct rating').collect(&:rating)
atau
Model.select(:rating).map(&:rating).uniq
atau
Model.select(:name).collect(&:rating).uniq
Satu hal lagi, permintaan pertama dan kedua: cari data berbeda dengan query SQL.
Kueri ini akan dianggap "london" dan "london" yang sama artinya akan diabaikan ke ruang angkasa, itu sebabnya ia akan memilih 'london' satu kali dalam hasil permintaan Anda.
Kueri ketiga dan seterusnya:
menemukan data dengan query SQL dan untuk data yang berbeda diterapkan ruby uniq mehtod. kueri ini akan dianggap "london" dan "london" berbeda, karena itu ia akan memilih 'london' dan 'london' di hasil kueri Anda.
lebih suka gambar terlampir untuk lebih memahami dan melihat "Tur / Menunggu RFP".