Class: Zadok::Filters::Ransack::AutocompleteFilter

Inherits:
Base
  • Object
show all
Defined in:
lib/zadok/filters/ransack/autocomplete_filter.rb

Instance Attribute Summary

Attributes inherited from Base

#params

Instance Method Summary collapse

Methods inherited from Base

#active_in?, #add_to_params, #i18n_name, #index, #initialize, #modify_columns, #param, #remove_from_params, #text, #title

Constructor Details

This class inherits a constructor from Zadok::Filters::Ransack::Base

Instance Method Details

#attrObject

Raises:

  • (NotImplementedError)


15
16
17
# File 'lib/zadok/filters/ransack/autocomplete_filter.rb', line 15

def attr
  raise NotImplementedError
end

#autocomplete_attributeObject

Raises:

  • (NotImplementedError)


19
20
21
# File 'lib/zadok/filters/ransack/autocomplete_filter.rb', line 19

def autocomplete_attribute
  raise NotImplementedError
end

#describe(current_params) ⇒ Object



7
8
9
# File 'lib/zadok/filters/ransack/autocomplete_filter.rb', line 7

def describe(current_params)
  current_params[param]
end

#field_idObject



35
36
37
# File 'lib/zadok/filters/ransack/autocomplete_filter.rb', line 35

def field_id
  "#{source.singularize}_#{autocomplete_attribute}"
end

#field_value(params) ⇒ Object



43
44
45
# File 'lib/zadok/filters/ransack/autocomplete_filter.rb', line 43

def field_value(params)
  model.find_by(attr => describe(params))&.send(autocomplete_attribute)
end

#modelObject

Raises:

  • (NotImplementedError)


11
12
13
# File 'lib/zadok/filters/ransack/autocomplete_filter.rb', line 11

def model
  raise NotImplementedError
end

#optionsObject



27
28
29
# File 'lib/zadok/filters/ransack/autocomplete_filter.rb', line 27

def options
  Hash[model.uniq.pluck(attr, autocomplete_attribute)]
end

#sourceObject



23
24
25
# File 'lib/zadok/filters/ransack/autocomplete_filter.rb', line 23

def source
  model.to_s.downcase.pluralize
end

#target_field_idObject



39
40
41
# File 'lib/zadok/filters/ransack/autocomplete_filter.rb', line 39

def target_field_id
  "q_#{param}"
end

#typeObject



31
32
33
# File 'lib/zadok/filters/ransack/autocomplete_filter.rb', line 31

def type
  :autocomplete
end