class AssociationScope::Scope::HasAndBelongsToManyReflection
Public Instance Methods
apply()
click to toggle source
# File lib/association_scope/scope/has_and_belongs_to_many_reflection.rb, line 6 def apply association = @association.pluralize details = model.reflections[association] class_name = details.options[:class_name]&.constantize || association.singularize.camelize.constantize table_name = model.to_s.underscore.pluralize.to_sym model.class_eval <<-RUBY, __FILE__, __LINE__ + 1 raise AssociationMissingError.new(missing_in: class_name, association: table_name) unless class_name.reflections.has_key?(table_name.to_s) scope association, -> do class_name .joins(table_name) .where(table_name => self) .distinct end RUBY end