module RailsProperties::Scopes
Public Instance Methods
properties_join_condition()
click to toggle source
# File lib/rails-properties/scopes.rb, line 29 def properties_join_condition "properties.target_id = #{table_name}.#{primary_key} AND properties.target_type = '#{base_class.name}'" end
with_properties()
click to toggle source
# File lib/rails-properties/scopes.rb, line 3 def with_properties result = joins("INNER JOIN properties ON #{properties_join_condition}") if ActiveRecord::VERSION::MAJOR < 5 result.uniq else result.distinct end end
with_properties_for(var)
click to toggle source
# File lib/rails-properties/scopes.rb, line 13 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
without_properties()
click to toggle source
# File lib/rails-properties/scopes.rb, line 18 def without_properties joins("LEFT JOIN properties ON #{properties_join_condition}"). where('properties.id IS NULL') end
without_properties_for(var)
click to toggle source
# File lib/rails-properties/scopes.rb, line 23 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