Class: RoleModelTables::FilterView
- Inherits:
-
Object
- Object
- RoleModelTables::FilterView
- Defined in:
- lib/rolemodel_tables/models/filter_view.rb
Overview
Parent class for all filter views.
Instance Attribute Summary collapse
-
#ransack ⇒ Object
readonly
Returns the value of attribute ransack.
Class Method Summary collapse
- .advanced_filter(ransack_matcher, klass_name, form_options = {}) ⇒ Object
- .default_sort(sort_option) ⇒ Object
- .quick_search(ransack_matcher) ⇒ Object
Instance Method Summary collapse
- #advanced_filters ⇒ Object
-
#initialize(scoped_collection) ⇒ FilterView
constructor
A new instance of FilterView.
- #search(params) ⇒ Object
Constructor Details
#initialize(scoped_collection) ⇒ FilterView
Returns a new instance of FilterView.
9 10 11 |
# File 'lib/rolemodel_tables/models/filter_view.rb', line 9 def initialize(scoped_collection) @scoped_collection = scoped_collection end |
Instance Attribute Details
#ransack ⇒ Object (readonly)
Returns the value of attribute ransack.
7 8 9 |
# File 'lib/rolemodel_tables/models/filter_view.rb', line 7 def ransack @ransack end |
Class Method Details
.advanced_filter(ransack_matcher, klass_name, form_options = {}) ⇒ Object
21 22 23 24 |
# File 'lib/rolemodel_tables/models/filter_view.rb', line 21 def self.advanced_filter(ransack_matcher, klass_name, = {}) self.advanced_filters ||= {} self.advanced_filters[ransack_matcher] = "RoleModelTables::Filters::#{klass_name}".constantize.new(ransack_matcher, ) end |
.default_sort(sort_option) ⇒ Object
13 14 15 |
# File 'lib/rolemodel_tables/models/filter_view.rb', line 13 def self.default_sort(sort_option) self.default_sort = sort_option end |
.quick_search(ransack_matcher) ⇒ Object
17 18 19 |
# File 'lib/rolemodel_tables/models/filter_view.rb', line 17 def self.quick_search(ransack_matcher) self.quick_search = ransack_matcher end |
Instance Method Details
#advanced_filters ⇒ Object
26 27 28 29 30 31 |
# File 'lib/rolemodel_tables/models/filter_view.rb', line 26 def advanced_filters self.class.advanced_filters.map do |_, filter_instance| filter_instance.filter = self filter_instance end end |
#search(params) ⇒ Object
33 34 35 36 37 |
# File 'lib/rolemodel_tables/models/filter_view.rb', line 33 def search(params) @ransack = @scoped_collection.ransack(params[:query]) @ransack.sorts = default_sort if @ransack.sorts.empty? @ransack.result.page(params[:page]) end |