def find_all_by_enumerator!(enumerators)
      enumerators = [enumerators].flatten
      records = find_all_by_enumerator(enumerators)
      missing = enumerators - records.map(&:enumerator)
      missing.empty? ? records : raise(ActiveRecord::RecordNotFound, "Couldn't find #{name} with #{enumerator_attribute}(s) #{missing.map(&:inspect).to_sentence}")
    end
def find_all_by_enumerator!(enumerators)
      enumerators = [enumerators].flatten
      records = find_all_by_enumerator(enumerators)
      missing = enumerators - records.map(&:enumerator)
      missing.empty? ? records : raise(ActiveRecord::RecordNotFound, "Couldn't find #{name} with #{enumerator_attribute}(s) #{missing.map(&:inspect).to_sentence}")
    end
Finds records with the given enumerators.  If no record is found for a
 particular enumerator, then an ActiveRecord::RecordNotFound exception
 is raised.

 For Example,

   Color.find_all_by_enumerator!(['red', 'green']) # => [#<Color id: 1, name: "red">, #<Color id: 1, name: "green">]
   Color.find_all_by_enumerator!('invalid')        # => ActiveRecord::RecordNotFound: Couldn't find Color with name(s) "invalid"

 To avoid raising an exception on invalid enumerators, use +find_all_by_enumerator+.