Sha256: 584be4dde1d05a024e8eca1324706af2f318a19e0c36a96a83707effe127157d
Contents?: true
Size: 912 Bytes
Versions: 29
Compression:
Stored size: 912 Bytes
Contents
module Virgo class User < ActiveRecord::Base module Search extend ActiveSupport::Concern included do scope :search, ->(filters=nil) { filters ||= {} items = all if filters[:term].present? parts = filters[:term].split(" ") queries = [] vals = {} parts.each_with_index do |part, i| vals[:"term_#{i}"] = "%#{part}%" queries << \ "(users.email ILIKE :term_#{i} OR " + "users.first_name ILIKE :term_#{i} OR " + "users.last_name ILIKE :term_#{i} OR " + "users.username ILIKE :term_#{i} OR " + "users.byline ILIKE :term_#{i})" end query = queries.join(" OR ") items = items.where(query, vals) end items } end end end end
Version data entries
29 entries across 29 versions & 1 rubygems