module RansackWrap::Adapters::ActiveRecord::Base

Public Instance Methods

wrap_searcher(params = {}) click to toggle source

Creates new searcher using RansackWrap::Search subclass for current model.

In the example below it creates instance of UserSearcher class (which must be defined in app/searchers/user_searcher.rb)

User.wrap_searcher(params[:q])
# => UserSearcher.new
# File lib/ransack_wrap/adapters/active_record.rb, line 17
def wrap_searcher(params = {})
  send(:wrap_searcher_as, name, params)
end
wrap_searcher_as(:name, params = {}) click to toggle source
wrap_searcher_as("name", params = {})

Creates new searcher using custom named searcher class.

In the example below it creates instance of SharedSearcher class (which must be defined in app/searchers/shared_searcher.rb)

User.wrap_searcher(:shared, params[:q]) 
# => SharedSearcher.new
# File lib/ransack_wrap/adapters/active_record.rb, line 32
def wrap_searcher_as(name, params = {})
  send(:searcher_class_for, name).new(self, params)
end

Private Instance Methods

searcher_class_for(name) click to toggle source
# File lib/ransack_wrap/adapters/active_record.rb, line 37
def searcher_class_for(name)
  name.to_s.camelize.concat("Searcher").constantize
end