Home > RUBY > Anda hobi sama named_scope?

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

  1. Category.find_by_sql

    ?

  2. atau dengan
    Category.find

    ?

  3. 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