module Mobility::Ransack::Search
Public Instance Methods
result(opts = {})
click to toggle source
Calls superclass method
# File lib/mobility/ransack.rb, line 31 def result(opts = {}) sorted = sorts.inject(super) do |relation, sort| predicate = ::Ransack::Visitor.new.visit_Ransack_Nodes_Sort(sort) apply_mobility_scope(relation, predicate, [sort.attr_name]) end conditions.inject(sorted) do |relation, condition| apply_mobility_scope(relation, condition.arel_predicate, condition.attributes.compact.flat_map(&:name)) end end
Private Instance Methods
apply_mobility_scope(relation, predicate, attributes)
click to toggle source
# File lib/mobility/ransack.rb, line 43 def apply_mobility_scope(relation, predicate, attributes) visitor.accept(predicate).inject(relation) do |i18n_rel, (backend_class, locale)| backend_class.apply_scope(i18n_rel, predicate, locale) end end
visitor()
click to toggle source
# File lib/mobility/ransack.rb, line 49 def visitor @visitor ||= Visitor.new end