2009-02-18 30 views
6

Chiều,Ruby on Rails: kiểm tra nếu kết quả ActiveRecord bao gồm một giá trị

phép nói rằng tôi có thu thập một lựa chọn ngẫu nhiên của người sử dụng:

User.find (: tất cả,: giới hạn => 10,: trật tự => "rand()")

Bây giờ từ những kết quả này, tôi muốn xem liệu người dùng có ID của 3 có được đưa vào kết quả hay không, cách tốt nhất để tìm ra điều này là gì?

Tôi đã nghĩ về Array.include? nhưng đó dường như là một kết thúc chết cho tôi.

Cảm ơn

JP

Trả lời

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

đối tượng kỷ lục tích cực được coi là bằng nhau nếu chúng có id bằng nhau. Mảng # bao gồm? tôn trọng đối tượng được xác định bình đẳng thông qua phương pháp ==.

0

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

Điều này sẽ giúp bạn không thể thực hiện một tìm kiếm khác.

Các vấn đề liên quan