2009-02-18 11 views
6

tarde,Ruby on Rails: probar si los resultados de ActiveRecord incluyen un valor

Digamos que tengo reunir una selección aleatoria de los usuarios:

User.find (: todos,: Límite => 10,: orden => "rand()")

Ahora, a partir de estos resultados, quiero ver si el usuario con el ID de 3 se incluyó en los resultados, ¿cuál sería la mejor manera de averiguarlo?

Pensé en Array.include? pero eso parece ser un callejón sin salida para mí.

Gracias

JP

Respuesta

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!" 

objetos registro activo se consideran iguales si tienen los mismos documentos de identidad. Array # include? respeta la igualdad de objetos definida a través del método ==.

0

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

Esto le ahorrará realizar otro descubrimiento.

Cuestiones relacionadas