Sha256: aa6edbb04e1e5eeb567205e09e7f676a5a7594f6c11ca3e4b40f109371312e57
Contents?: true
Size: 622 Bytes
Versions: 9
Compression:
Stored size: 622 Bytes
Contents
module ESA module Traits # # https://gist.github.com/tlowrimore/5162327 # # Unions multiple scopes on a model, and returns an instance of ActiveRecord::Relation. # module UnionScope def self.included(base) base.send :extend, ClassMethods end module ClassMethods def union_scope(*scopes) id_column = "#{table_name}.id" sub_query = scopes.map { |s| s.select(id_column).to_sql }.join(" UNION ") where "#{id_column} IN (#{sub_query})" end end end end end ActiveRecord::Base.send :include, ESA::Traits::UnionScope
Version data entries
9 entries across 9 versions & 1 rubygems