module ActiveAdmin::Filters::FormtasticAddons
Public Instance Methods
column()
click to toggle source
# File lib/active_admin/filters/formtastic_addons.rb, line 26 def column column_for method end
column_for(method)
click to toggle source
# File lib/active_admin/filters/formtastic_addons.rb, line 22 def column_for(method) klass.columns_hash[method.to_s] if klass.respond_to? :columns_hash end
has_predicate?()
click to toggle source
If the given method has a predicate (like _eq or _lteq), it’s pretty likely we’re dealing with a valid search method.
# File lib/active_admin/filters/formtastic_addons.rb, line 62 def has_predicate? !!Ransack::Predicate.detect_and_strip_from_string!(method.to_s) end
humanized_method_name()
click to toggle source
The below are Formtastic method overrides that jump inside of the Ransack search object to get at the object being searched upon.
# File lib/active_admin/filters/formtastic_addons.rb, line 10 def humanized_method_name if klass.respond_to?(:human_attribute_name) klass.human_attribute_name(method) else method.to_s.send(builder.label_str_method) end end
klass()
click to toggle source
The resource class, unwrapped from Ransack
# File lib/active_admin/filters/formtastic_addons.rb, line 35 def klass @object.object.klass end
polymorphic_foreign_type?(method)
click to toggle source
# File lib/active_admin/filters/formtastic_addons.rb, line 39 def polymorphic_foreign_type?(method) klass.reflections.values.select{ |r| r.macro == :belongs_to && r.options[:polymorphic] } .map(&:foreign_type).include? method.to_s end
ransacker?()
click to toggle source
Ransack lets you define custom search methods, so we need to check for them.
# File lib/active_admin/filters/formtastic_addons.rb, line 67 def ransacker? klass._ransackers.key? method.to_s end
reflection_for(method)
click to toggle source
# File lib/active_admin/filters/formtastic_addons.rb, line 18 def reflection_for(method) klass.reflect_on_association(method) if klass.respond_to? :reflect_on_association end
searchable_has_many_through?()
click to toggle source
These help figure out whether the given method or association will be recognized by Ransack.
# File lib/active_admin/filters/formtastic_addons.rb, line 48 def searchable_has_many_through? if reflection && reflection.options[:through] reflection.through_reflection.klass.ransackable_attributes.include? reflection.foreign_key else false end end
seems_searchable?()
click to toggle source
# File lib/active_admin/filters/formtastic_addons.rb, line 56 def seems_searchable? has_predicate? || ransacker? end