lib/autosuggest/controller_macros.rb in autosuggest-rb-0.1.4 vs lib/autosuggest/controller_macros.rb in autosuggest-rb-0.1.5
- old
+ new
@@ -5,23 +5,18 @@
# when called, you must add a custom route for action like this:
# resources :products do
# get :autosuggest_brand_name, :on => :collection
# end
def autosuggest(object, name, options={})
- display_name = options[:display] || name
- order = options[:order] || "#{name} ASC"
- limit = options[:limit] || 10
- like_clause = defined?(PGconn) ? 'ILIKE' : 'LIKE'
-
options[:display] ||= name
options[:order] ||= "#{name} ASC"
options[:limit] ||= 10
- options[:like_clause] = defined?(PGconn) ? 'ILIKE' : 'LIKE'
options[:name] = name
define_method "autosuggest_#{object}_#{name}" do
- results = db_store(object).query(options.merge(:query => params[:query], :object => objectify(object)))
- render :json => Yajl::Encoder.encode(results.map{|r| {:name => r.send(display_name), :value => r.id}})
+ options.merge!(:query => params[:query], :object => objectify(object), :like_clause => resolve_like_clause)
+ results = db_store(object).query(options)
+ render :json => Yajl::Encoder.encode(results.map{|r| {:name => r.send(options[:display]), :value => r.id}})
end
end
end
end