2009-02-18 5 views
6

Nachmittag schließen,Ruby on Rails: Testen, ob Active Ergebnisse Wert

Lets sagen, dass ich eine zufällige Auswahl von Benutzern sammeln haben:

User.find (: alle,: Limit => 10,: bestellen => "rand()")

Jetzt von diesen Ergebnissen möchte ich sehen, ob der Benutzer mit der ID 3 in den Ergebnissen enthalten war, was wäre der beste Weg, dies herauszufinden?

Ich dachte über Array.include? aber das scheint eine Sackgasse für mich zu sein.

Dank

JP

Antwort

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

Active Record-Objekte werden als gleich betrachtet, wenn sie gleich ids haben. Array # enthalten? respektiert die Objekte definiert Gleichheit über die == Methode.

0

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

Dies wird Sie davor bewahren, einen anderen Fund zu machen.