Se estou indo direto ao ponto, então:
Consulta atual
Model.select(:rating)
está retornando matriz de objeto e você escreveu uma consulta
Model.select(:rating).uniq
O uniq é aplicado na matriz de objetos e cada objeto possui um ID exclusivo. O uniq está executando seu trabalho corretamente porque cada objeto na matriz é uniq.
Existem várias maneiras de selecionar classificações distintas:
Model.select('distinct rating').map(&:rating)
ou
Model.select('distinct rating').collect(&:rating)
ou
Model.select(:rating).map(&:rating).uniq
ou
Model.select(:name).collect(&:rating).uniq
Mais uma coisa, primeira e segunda consulta: encontre dados distintos por consulta SQL.
Essas consultas serão consideradas "london" e "london" da mesma forma que serão negligenciadas no espaço; é por isso que ele selecionará 'london' uma vez no resultado da consulta.
Terceira e quarta consulta:
encontre dados por consulta SQL e para dados distintos aplicados ruby uniq mehtod. essas consultas serão consideradas "london" e "london" diferentes; é por isso que ela selecionará 'london' e 'london', ambas no resultado da consulta.
por favor, prefira a imagem anexada para obter mais compreensão e consulte "Tourou / Aguardando RFP".