module RailsSettings::Scopes
Public Instance Methods
settings_join_condition()
click to toggle source
# File lib/rails-settings/scopes.rb, line 29 def settings_join_condition "settings.target_id = #{table_name}.#{primary_key} AND settings.target_type = '#{base_class.name}'" end
with_settings()
click to toggle source
# File lib/rails-settings/scopes.rb, line 3 def with_settings result = joins("INNER JOIN settings ON #{settings_join_condition}") if ActiveRecord::VERSION::MAJOR < 5 result.uniq else result.distinct end end
with_settings_for(var)
click to toggle source
# File lib/rails-settings/scopes.rb, line 13 def with_settings_for(var) raise ArgumentError.new('Symbol expected!') unless var.is_a?(Symbol) joins("INNER JOIN settings ON #{settings_join_condition} AND settings.var = '#{var}'") end
without_settings()
click to toggle source
# File lib/rails-settings/scopes.rb, line 18 def without_settings joins("LEFT JOIN settings ON #{settings_join_condition}"). where('settings.id IS NULL') end
without_settings_for(var)
click to toggle source
# File lib/rails-settings/scopes.rb, line 23 def without_settings_for(var) raise ArgumentError.new('Symbol expected!') unless var.is_a?(Symbol) joins("LEFT JOIN settings ON #{settings_join_condition} AND settings.var = '#{var}'"). where('settings.id IS NULL') end