Dari dokumen:
- (Object?) Mendeteksi (ifnone = nil) {| obj | ...}
- (Object?) Find (ifnone = nil) {| obj | ...}
- (Objek) deteksi (ifnone = nil)
- (Objek) find (ifnone = nil)
Lewati setiap entri di enum untuk diblokir. Mengembalikan blok pertama yang tidak salah. Jika tidak ada objek yang cocok, panggil ifnone dan kembalikan hasilnya saat ditentukan, atau kembalikan nihil sebaliknya.
Jika tidak ada blok yang diberikan, enumerator malah dikembalikan.
(1..10).detect {|i| i % 5 == 0 and i % 7 == 0 } #=> nil
(1..100).detect {|i| i % 5 == 0 and i % 7 == 0 } #=> 35
Ini bekerja untuk saya:
clients.detect{|client| client.last['client_id'] == '2180' } #=> ["orange", {"client_id"=>"2180"}]
clients.detect{|client| client.last['client_id'] == '999999' } #=> nil
Lihat:
http://rubydoc.info/stdlib/core/1.9.2/Enumerable#find-instance_method
finddanselectadalah yangfindmengembalikan kecocokan pertama danselect(yang disebut denganfindAll) mengembalikan semua kecocokan.