Sha256: a019b19c1970353938d8e8ab89a56da7c26f87fb3171b6936a104f0864485bd9
Contents?: true
Size: 1.02 KB
Versions: 1
Compression:
Stored size: 1.02 KB
Contents
module RailsProperties module Scopes def with_properties result = joins("INNER JOIN properties ON #{properties_join_condition}") if ActiveRecord::VERSION::MAJOR < 5 result.uniq else result.distinct end end def with_properties_for(var) raise ArgumentError.new('Symbol expected!') unless var.is_a?(Symbol) joins("INNER JOIN properties ON #{properties_join_condition} AND properties.var = '#{var}'") end def without_properties joins("LEFT JOIN properties ON #{properties_join_condition}"). where('properties.id IS NULL') end def without_properties_for(var) raise ArgumentError.new('Symbol expected!') unless var.is_a?(Symbol) joins("LEFT JOIN properties ON #{properties_join_condition} AND properties.var = '#{var}'"). where('properties.id IS NULL') end def properties_join_condition "properties.target_id = #{table_name}.#{primary_key} AND properties.target_type = '#{base_class.name}'" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rails-properties-3.4.3 | lib/rails-properties/scopes.rb |