Sha256: f2a347ca9cd1dbbcace0edf34a41a02bc93947c6d5ceccd847afe72c01720dec
Contents?: true
Size: 797 Bytes
Versions: 4
Compression:
Stored size: 797 Bytes
Contents
module SimpleAdmin class Search attr_reader :search_query, :resource_klass, :model_attributes def initialize(search_query, resource_klass) @search_query = search_query @resource_klass = resource_klass @model_attributes = SimpleAdmin::EntityField.joins(:entity) .where(simple_admin_entities: { model_klass_name: resource_klass.to_s }) .search_indexable_columns end def process return [] if model_attributes.empty? query = model_attributes.map { |model_attribute| "#{model_attribute} LIKE ?" }.join(' OR ') query_arguments = model_attributes.map { "%#{search_query}%" } resource_klass.where(query, *query_arguments) end end end
Version data entries
4 entries across 4 versions & 1 rubygems