Sha256: 5dcb56a5bde4b7fea1d68b49b6428a21563be3ca4d40e04111ef4974cd192419
Contents?: true
Size: 1.25 KB
Versions: 3
Compression:
Stored size: 1.25 KB
Contents
require "yajl" module Rails3JQueryAutocomplete # Inspired on DHH's autocomplete plugin # # Usage: # # class ProductsController < Admin::BaseController # autocomplete :brand, :name # end # # This will magically generate an action autocomplete_brand_name, so, # don't forget to add it on your routes file # # resources :products do # get :autocomplete_brand_name, :on => :collection # end # # Now, on your view, all you have to do is have a text field like: # # f.text_field :brand_name, :autocomplete => autocomplete_brand_name_products_path # # module ClassMethods def autocomplete(object, method, options = {}) define_method("autocomplete_#{object}_#{method}") do term = params[:term] if term && !term.empty? #allow specifying fully qualified class name for model object class_name = options[:class_name] || object items = get_autocomplete_items(:model => get_object(class_name), \ :options => options, :term => term, :method => method) else items = {} end render :json => Yajl::Encoder.encode(json_for_autocomplete(items, options[:display_value] ||= method, options[:extra_data])) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems