class ActiveAdmin::Filters::FormBuilder
This form builder defines methods to build filter forms such as the one found in the sidebar of the index page of a standard resource.
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
ActiveAdmin::FormBuilder::new
# File lib/active_admin/filters/forms.rb, line 9 def initialize(*args) @use_form_buffer = true # force ActiveAdmin::FormBuilder to use the form buffer super end
Public Instance Methods
filter(method, options = {})
click to toggle source
# File lib/active_admin/filters/forms.rb, line 14 def filter(method, options = {}) if method.present? && options[:as] ||= default_input_type(method) input(method, options) end end
Protected Instance Methods
active_admin_input_class_name(as)
click to toggle source
# File lib/active_admin/filters/forms.rb, line 46 def active_admin_input_class_name(as) "ActiveAdmin::Inputs::Filter#{as.to_s.camelize}Input" end
custom_input_class_name(as)
click to toggle source
# File lib/active_admin/filters/forms.rb, line 42 def custom_input_class_name(as) "Filter#{as.to_s.camelize}Input" end
default_input_type(method, options = {})
click to toggle source
Returns the default filter type for a given attribute
# File lib/active_admin/filters/forms.rb, line 23 def default_input_type(method, options = {}) if method =~ /_(contains|starts_with|ends_with)\z/ :string elsif reflection_for(method) || polymorphic_foreign_type?(method) :select elsif column = column_for(method) case column.type when :date, :datetime :date_range when :string, :text :string when :integer, :float, :decimal :numeric when :boolean :boolean end end end