Если я пойду направо, то:
Текущий запрос
Model.select(:rating)
возвращает массив объекта, и вы написали запрос
Model.select(:rating).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.
эти запросы будут считать «лондон» и «лондон» разными, поэтому в результатах запроса будут выбраны «лондон» и «лондон».
Пожалуйста, предпочитайте прикрепленное изображение для большего понимания и посмотрите "Toured / Awaiting RFP".