module Ransack::Configuration
def add_predicate(name, opts = {})
def add_predicate(name, opts = {}) name = name.to_s opts[:name] = name compounds = opts.delete(:compounds) compounds = true if compounds.nil? compounds = false if opts[:wants_array] self.predicates[name] = Predicate.new(opts) Constants::SUFFIXES.each do |suffix| compound_name = name + suffix self.predicates[compound_name] = Predicate.new( opts.merge( :name => compound_name, :arel_predicate => arel_predicate_with_suffix( opts[:arel_predicate], suffix ), :compound => true ) ) end if compounds end
def arel_predicate_with_suffix(arel_predicate, suffix)
def arel_predicate_with_suffix(arel_predicate, suffix) if arel_predicate === Proc proc { |v| "#{arel_predicate.call(v)}#{suffix}" } else "#{arel_predicate}#{suffix}" end end
def configure
def configure yield self end
def hide_sort_order_indicators=(boolean)
end
config.hide_sort_order_indicators = true
# Hide sort link order indicators globally across the application
Ransack.configure do |config|
`config/initializers/ransack.rb` as follows:
The default may be globally overridden in an initializer file like
By default, Ransack displays sort order indicator arrows in sort links.
def hide_sort_order_indicators=(boolean) self.options[:hide_sort_order_indicators] = boolean end
def ignore_unknown_conditions=(boolean)
end
config.ignore_unknown_conditions = false
# Raise if an unknown predicate, condition or attribute is passed
Ransack.configure do |config|
initializer file like `config/initializers/ransack.rb` as follows:
attribute is passed into a search. The default may be overridden in an
By default Ransack ignores errors if an unknown predicate, condition or
def ignore_unknown_conditions=(boolean) self.options[:ignore_unknown_conditions] = boolean end
def search_key=(name)
<%= f.search_form_for @search, as: :log_search %>
In the view:
@search = Log.ransack(params[:log_search], search_key: :log_search)
In the controller:
`ransack`, `search` and `@search_form_for` methods in controllers & views.
Another name can be set using the `search_key` option with Ransack
cannot be used, for instance if there were two searches on one page.
Sometimes there are situations when the default search parameter name
end
config.search_key = :query
# Name the search_key `:query` instead of the default `:q`
Ransack.configure do |config|
in an initializer file like `config/initializers/ransack.rb` as follows:
The default `search_key` name is `:q`. The default key may be overridden
def search_key=(name) self.options[:search_key] = name end