Si voy directo al camino, entonces:
Consulta actual
Model.select(:rating)
está devolviendo una matriz de objetos y ha escrito consulta
Model.select(:rating).uniq
uniq se aplica en una matriz de objetos y cada objeto tiene una identificación única. uniq está realizando su trabajo correctamente porque cada objeto en la matriz es uniq.
Hay muchas formas de seleccionar una calificación distinta:
Model.select('distinct rating').map(&:rating)
o
Model.select('distinct rating').collect(&:rating)
o
Model.select(:rating).map(&:rating).uniq
o
Model.select(:name).collect(&:rating).uniq
Una cosa más, primera y segunda consulta: encuentre datos distintos por consulta SQL.
Estas consultas se considerarán "londres" y "londres" lo mismo significa que descuidará el espacio, es por eso que seleccionará 'londres' una vez en el resultado de su consulta.
Tercera y cuarta consulta:
buscar datos por consulta SQL y para datos distintos aplicados ruby uniq mehtod. estas consultas se considerarán "londres" y "londres" diferentes, por eso seleccionará 'londres' y 'londres' en el resultado de su consulta.
por favor, prefiera la imagen adjunta para una mejor comprensión y eche un vistazo a "Recorrido / En espera de RFP".