Sha256: ca47fcd136aee8288e19b2b7d8cfa1b6762654cb3c59fd3e20e45d37c0734f99
Contents?: true
Size: 1.15 KB
Versions: 1
Compression:
Stored size: 1.15 KB
Contents
require 'active_record/relation/predicate_builder' require 'active_record/relation/predicate_builder/array_handler' require 'active_support/concern' module ActiveRecord class PredicateBuilder module ArrayHandlerPatch extend ActiveSupport::Concern included do def call_with_feature(attribute, value) column = case attribute.try(:relation) when Arel::Nodes::TableAlias, NilClass else cache = attribute.relation.engine.connection.schema_cache if cache.table_exists? attribute.relation.name cache.columns(attribute.relation.name).detect{ |col| col.name.to_s == attribute.name.to_s } end end if column && column.respond_to?(:array) && column.array attribute.eq(value) else call_without_feature(attribute, value) end end alias_method_chain(:call, :feature) end module ClassMethods end end end end ActiveRecord::PredicateBuilder::ArrayHandler.send(:include, ActiveRecord::PredicateBuilder::ArrayHandlerPatch)
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
postgres_ext-3.0.1 | lib/postgres_ext/active_record/relation/predicate_builder/array_handler.rb |