]> git.openstreetmap.org Git - rails.git/blobdiff - app/validators/characters_validator.rb
Merge remote-tracking branch 'upstream/pull/4226'
[rails.git] / app / validators / characters_validator.rb
index ee5b5bcf3b4463815421cf9c4201fff0bcacf620..13d08ca55e06e1079f9b44c39ba429e854a06916 100644 (file)
@@ -3,10 +3,7 @@ class CharactersValidator < ActiveModel::EachValidator
   INVALID_URL_CHARS = "/;.,?%#".freeze
 
   def validate_each(record, attribute, value)
   INVALID_URL_CHARS = "/;.,?%#".freeze
 
   def validate_each(record, attribute, value)
-    record.errors[attribute] << (options[:message] || I18n.t("validations.invalid_characters")) if /[#{INVALID_CHARS}]/.match?(value)
-
-    if options[:url_safe]
-      record.errors[attribute] << (options[:message] || I18n.t("validations.url_characters", :characters => INVALID_URL_CHARS)) if /[#{INVALID_URL_CHARS}]/.match?(value)
-    end
+    record.errors.add(attribute, options[:message] || I18n.t("validations.invalid_characters")) if /[#{INVALID_CHARS}]/o.match?(value)
+    record.errors.add(attribute, options[:message] || I18n.t("validations.url_characters", :characters => INVALID_URL_CHARS)) if options[:url_safe] && /[#{INVALID_URL_CHARS}]/o.match?(value)
   end
 end
   end
 end