Class: ActiveAdmin::FilterFormBuilder
- Inherits:
-
Object
- Object
- ActiveAdmin::FilterFormBuilder
- Defined in:
- lib/active_admin/mongoid/filter_form_builder.rb
Instance Method Summary collapse
- #column_for(method) ⇒ Object
- #default_input_type(method, options = {}) ⇒ Object
- #is_association?(method) ⇒ Boolean
- #reflection_for(method) ⇒ Object
Instance Method Details
#column_for(method) ⇒ Object
24 25 26 |
# File 'lib/active_admin/mongoid/filter_form_builder.rb', line 24 def column_for(method) @object.klass.fields[method.to_s] if @object.klass.respond_to?(:fields) end |
#default_input_type(method, options = {}) ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/active_admin/mongoid/filter_form_builder.rb', line 2 def default_input_type(method, = {}) if column = column_for(method) case column.type.name.downcase.to_sym when :date, :datetime, :time; :date_range when :string, :text, :objectl; :string when :float, :decimal; :numeric when :integer return :select if reflection_for(method.to_s.gsub('_id','').to_sym) return :numeric end elsif is_association?(method) return :select else # dirty but allows to create filters for hashes return :string end end |
#is_association?(method) ⇒ Boolean
20 21 22 |
# File 'lib/active_admin/mongoid/filter_form_builder.rb', line 20 def is_association?(method) @object.klass.associations.to_a.map(&:first).include?(method.to_s) end |
#reflection_for(method) ⇒ Object
28 29 30 |
# File 'lib/active_admin/mongoid/filter_form_builder.rb', line 28 def reflection_for(method) @object.klass.reflect_on_association(method) if @object.klass.respond_to?(:reflect_on_association) end |