Module: ActiveAdmin::AjaxFilter
- Defined in:
- lib/active_admin/ajax_filter.rb,
lib/active_admin/ajax_filter/engine.rb,
lib/active_admin/ajax_filter/version.rb
Defined Under Namespace
Classes: Engine
Constant Summary collapse
- VERSION =
'0.5.0'
Class Method Summary collapse
Class Method Details
.included(dsl) ⇒ void
This method returns an undefined value.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/active_admin/ajax_filter.rb', line 14 def included(dsl) dsl.instance_eval do collection_action :filter, method: :get do scope = find_collection(except: [:pagination, :collection_decorator]) .order(params[:order]) .limit(params[:limit] || 10) .distinct search_fields = Array(params[:searchFields]) = search_fields .select { |f| f.include?('.') } .map { |f| f.split('.') } .each do |, _| scope = scope.preload() end res = apply_collection_decorator(scope).map do |item| item_json = item.as_json .each do |, search_field| item_json[ + '.' + search_field] = item.send().send(search_field) end item_json end render plain: res.to_json end end end |