module Acts::DataTable::ScopeFilters::ActionController
Public Class Methods
clear_request_filters!()
click to toggle source
Clears all active filters from the thread space.
# File lib/acts_as_data_table/scope_filters/action_controller.rb, line 133 def self.clear_request_filters! Thread.current[:scope_filters] = nil end
get_request_data()
click to toggle source
Fetches the current request's filter data from the thread space
# File lib/acts_as_data_table/scope_filters/action_controller.rb, line 111 def self.get_request_data Acts::DataTable.lookup_nested_hash(Thread.current, :scope_filters) end
get_request_filters()
click to toggle source
Fetches the current request's active filters from the thread space
# File lib/acts_as_data_table/scope_filters/action_controller.rb, line 118 def self.get_request_filters self.get_request_data[:filters] end
get_request_model()
click to toggle source
@return [ActiveRecord::Base] the model used for filtering in the current request
# File lib/acts_as_data_table/scope_filters/action_controller.rb, line 125 def self.get_request_model model = self.get_request_data[:model] model.camelize.constantize end
included(base)
click to toggle source
# File lib/acts_as_data_table/scope_filters/action_controller.rb, line 6 def self.included(base) base.send :extend, ClassMethods end
set_request_filters!(model, filters)
click to toggle source
Saves the current request's active filters to the thread space
# File lib/acts_as_data_table/scope_filters/action_controller.rb, line 97 def self.set_request_filters!(model, filters) Acts::DataTable.ensure_nested_hash!(Thread.current, :scope_filters) current_scopes = filters.inject({}) do |h, (group, scope)| h[group] = [scope.keys.first, scope[scope.keys.first]] h end Thread.current[:scope_filters] = {:model => model.to_s, :filters => current_scopes} end
Public Instance Methods
current_scope_filters()
click to toggle source
Returns the currently active scope filters
This function should only be used when the automatic scope with_scope_filters
is not working due to a different execution time or thread, e.g. a background worker.
# File lib/acts_as_data_table/scope_filters/action_controller.rb, line 86 def current_scope_filters Acts::DataTable::ScopeFilters::ActionController.get_request_filters end