module PolymorphicConstraints::Utils::PolymorphicModelFinder

Public Instance Methods

get_polymorphic_models(relation) click to toggle source
# File lib/polymorphic_constraints/utils/polymorphic_model_finder.rb, line 4
def get_polymorphic_models(relation)
  Rails.application.eager_load!
  ActiveRecord::Base.descendants.select do |klass|
    contains_polymorphic_relation?(klass, relation)
  end
end

Private Instance Methods

contains_polymorphic_relation?(model_class, relation) click to toggle source
# File lib/polymorphic_constraints/utils/polymorphic_model_finder.rb, line 13
def contains_polymorphic_relation?(model_class, relation)
  associations = model_class.reflect_on_all_associations
  associations.map{ |r| r.options[:as] }.include?(relation.to_sym)
end