2009-02-18 2 views
6

Во второй половине дня,Рубин на Rails: тестирования, если результаты ActiveRecord включают значение

Допустим, у меня есть собирать случайный выбор пользователей:

User.find (: все, предел: => 10,: заказ => "rand()")

Теперь из этих результатов я хочу узнать, был ли пользователь с идентификатором 3 включен в результаты, что было бы лучшим способом выяснить это?

Я думал о Array.include? но это кажется для меня тупиком.

Благодаря

JP

ответ

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

Активные объекты записи считаются равными, если они имеют одинаковые идентификаторы. Массив # включить? оценивает объекты, определенные равенством, с помощью метода ==.

0

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

Это избавит вас от выполнения другой находки.

Смежные вопросы