2009-02-18 72 views
6

下午,Ruby on Rails的:如果測試結果的ActiveRecord包括值

可以說我有收集用戶的隨機選擇:

User.find(:全部:極限=> 10:訂單=>「rand()」)

現在從這些結果中,我想看看ID爲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!" 

的Active Record對象被認爲是相等的,如果他們有相同的ID。陣列#包括哪些內容?通過==方法尊重定義的對象。

0

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

這樣可以使您不必再做另一次查找。