class FortyFacets::FacetFilterDefinition::AssociationFacetFilter

Public Instance Methods

add(entity) click to toggle source
# File lib/forty_facets/filter/facet_filter_definition.rb, line 39
def add(entity)
  new_params = search_instance.params || {}

  old_values = new_params[definition.request_param] ||= []
  old_values << entity.id.to_s
  search_instance.class.new_unwrapped(new_params, search_instance.root)
end
remove(entity) click to toggle source
# File lib/forty_facets/filter/facet_filter_definition.rb, line 31
def remove(entity)
  new_params = search_instance.params || {}
  old_values = new_params[definition.request_param]
  old_values.delete(entity.id.to_s)
  new_params.delete(definition.request_param) if old_values.empty?
  search_instance.class.new_unwrapped(new_params, search_instance.root)
end
selected() click to toggle source
# File lib/forty_facets/filter/facet_filter_definition.rb, line 27
def selected
  @selected ||= definition.association.klass.unscoped.find(Array.wrap(values).reject(&:blank?))
end