Sha256: 3df2a3243f3baed57a226d5754a4b2f53cf8573d1a52838cd9cf40fc9448feb3
Contents?: true
Size: 1.17 KB
Versions: 3
Compression:
Stored size: 1.17 KB
Contents
require 'active_record' module FlexaLib module ActiveRecord module PesquisaWrapper # # flexa_search BUSCA # # Model.flexa_search(:search => {:text => params[:search], # :fields => ['nome','cod_cidade']}, :page => params[:page]) # def flexa_search(options) options = options.dup search_options = options.fetch(:search) { raise ArgumentError, ":search is required" } likes_search = search_options.fetch(:fields) { raise ArgumentError, ":fields is required" } text_search = search_options.fetch(:text) { raise ArgumentError, ":text is required" } text_search ||= '' options.delete(:search) if text_search.length > 0 and likes_search.count > 0 likes_search.collect! {|x| "(UPPER("+x+") LIKE UPPER(:search))"} paginate(options).where(likes_search.join(' OR '), :search => "%"+text_search.to_s+"%") else paginate(options) end end end #fim do modulo PesquisaWrapper # adicionar ao ActiveRecord ::ActiveRecord::Base.extend PesquisaWrapper end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
flexa_lib-0.3.9 | lib/flexa_lib/model_extensions.rb |
flexa_lib-0.3.8 | lib/flexa_lib/model_extensions.rb |
flexa_lib-0.3.7 | lib/flexa_lib/model_extensions.rb |