2009-02-18 10 views
6

pomeriggio,Ruby on Rails: testare se i risultati ActiveRecord includono un valore

Diciamo che ho raccogliere una selezione casuale di utenti:

User.find (: all,: Limite => 10,: ordine => "rand()")

Ora da questi risultati, voglio vedere se l'utente con l'ID di 3 è stato incluso nei risultati, quale sarebbe il modo migliore per scoprirlo?

Ho pensato ad Array.include? ma quello sembra essere un vicolo cieco per me.

Grazie

JP

risposta

7
users = User.find(:all, :limit => 10, :order => "rand()") 
users.any? {|u| u.id == 3} 
2
assert random_users.include?(User.find 3), "Not found!" 

oggetti record attivo sono considerati uguali se hanno uguali ID. Array # includono? rispetta gli oggetti definiti uguaglianza tramite il metodo ==.

0

User.find (: all,: limit => 10,: order => "rand()"). Any? {| u | u.id == 3}

Ciò ti eviterà di eseguire un'altra ricerca.

Problemi correlati