Anda hobi sama named_scope?
October 26, 2008
Mungkin kalau Anda senang dengan metode kelas tanpa kondisi Anda suka dengan named_scope, mungkin Anda bertanya-tanya apakah named_scope bisa digunakan untuk metode kelas yang menerima parameter sebagai kondisi.
Berikut sebuah contoh kasus, Anda ingin melakukan query sebagai berikut:
SELECT id, name, permalink, parent_id FROM categories WHERE name LIKE '%wi%'
Sampai disini apa yang terpikir di benak Anda? Apakah Anda akan menyelesaikan satu task tsb dengan
-
Category.find_by_sql
?
- atau dengan
Category.find
?
- Atau mungkin dengan
Category.search
?
Ya, kalau saya yang terakhir.
class Category < ActiveRecord::Base
named_scope :search, lambda { |q|
{
:conditions => ['name LIKE ?', '%'+q+'%'],
:select => 'id, name, permalink, parent_id'
}
}
end
Berikut hasil copy paste dari script/console
>> Category.search('wi')
=> [#<Category id: 11, name: "Wisata", permalink: nil, parent_id: nil, created_at: "2008-10-26 05:45:27", updated_at: "2008-10-26 05:45:27">]
Penemuan tulisan yang tidak bakalan Anda dapat dari Manual (hari dimana posting ini saya blog adalah tanggal 26 Oktober 2008) credit goes to @h3×4