Se sto andando a modo giusto allora:
Query corrente
Model.select(:rating)
sta restituendo un array di oggetti e hai scritto una query
Model.select(:rating).uniq
uniq viene applicato sull'array di oggetti e ogni oggetto ha un ID univoco. uniq sta eseguendo il suo lavoro correttamente perché ogni oggetto nell'array è uniq.
Esistono molti modi per selezionare una valutazione 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
Un'altra cosa, prima e seconda query: trovare dati distinti tramite query SQL.
Queste query saranno considerate "londra" e "londra" allo stesso modo che trascureranno lo spazio, ecco perché selezionerà "londra" una volta nel risultato della query.
Terza e quarta query:
trova i dati tramite query SQL e per dati distinti applicati ruby uniq mehtod. queste query saranno considerate "londra" e "londra" diverse, ecco perché selezionerà "londra" e "londra" nel risultato della query.
preferisci l'immagine allegata per una maggiore comprensione e dai un'occhiata a "Tour / In attesa di RFP".