require 'id_hash' module IdsOfAllDirectDependencies def ids_of_all_direct_dependencies result = IdHash.new self.class.reflect_on_all_associations.map do |association| next if association.macro == :belongs_to symbol = association.klass.name.underscore.to_sym self.send(association.name).map do |associated_object| result.add(symbol, associated_object.id) end end result end end