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