Sha256: abb25b2a928411ac8b35f1e3c8739c86cefcce28ddb90b1f2c80c77984c33850
Contents?: true
Size: 792 Bytes
Versions: 1
Compression:
Stored size: 792 Bytes
Contents
require 'yajl' module Autosuggest module ControllerMacros # 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={}) options[:display] ||= name options[:order] ||= "#{name} ASC" options[:limit] ||= 10 options[:name] = name define_method "autosuggest_#{object}_#{name}" do 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
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
autosuggest-rb-0.1.5 | lib/autosuggest/controller_macros.rb |