Якщо я піду правильно, тоді:
Поточний запит
Model.select(:rating)
повертає масив об'єкта, і ви написали запит
Model.select(:rating).uniq
uniq застосовується на масиві об'єктів, і кожен об'єкт має унікальний ідентифікатор. 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-запитом.
Ці запити вважатимуться "london" та "london" однаково, це означає, що він нехтуватиме простором, тому він вибере 'london' один раз у вашому результаті запиту.
Третій і четвертий запит:
знайти дані за допомогою SQL-запиту та для різних даних, застосованих ruby uniq mehtod. ці запити будуть розглядатися як "london" та "london" різні, тому для результатів запиту вони обиратимуть "london" та "london".
будь ласка, віддайте перевагу прикріпленому зображенню для більшого розуміння та ознайомтеся з "Подорожували / чекали RFP"