named_scopeで検索

参考
#112 Anonymous Scopes - RailsCasts

class Product < ActiveRecord::Base
  has_many :product_details
  
  named_scope :active, :conditions => {:enabled => true}
  named_scope :not_deleted, :conditions => {:delete_flg => false}
  named_scope :deleted, :conditions => {:delete_flg => true}
  named_scope :titled, lambda{|query| { :conditions =>["title like ?", "%#{query}%"] }}
  
  def self.search(form)
    
    scope = Product.scoped({})
    scope = scope.active if form[:enabled]
    scope = scope.deleted if form[:deleted]
    scope = scope.titled(form[:query]) unless form[:query].blank?
    scope
  end
end



<% form_tag '/products/search' do%>
  <p>削除 <%= check_box_tag :deleted, 1, @deleted%></p>
  <p>有効 <%= check_box_tag :enabled, 1, @enabled%></p>
  <p>クエリ <%= text_field_tag :query, @query%></p>
  <%= submit_tag :submit  %>
<%end%>


それっぽいSQLは発行されてる、が
scoped({})の部分が何やってるのかわからない〜。