X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/d73a5d4bc015d304e7b8863a0e927ac0b134e07b..6e5e25736631c1b3f8980bdb5ab5bdbdd69f0843:/app/validators/characters_validator.rb?ds=sidebyside diff --git a/app/validators/characters_validator.rb b/app/validators/characters_validator.rb index cbcd03a16..13d08ca55 100644 --- a/app/validators/characters_validator.rb +++ b/app/validators/characters_validator.rb @@ -3,10 +3,7 @@ class CharactersValidator < ActiveModel::EachValidator INVALID_URL_CHARS = "/;.,?%#".freeze def validate_each(record, attribute, value) - record.errors[attribute] << (options[:message] || I18n.t("validations.invalid_chars")) if value =~ /[#{INVALID_CHARS}]/ - - if options[:url_safe] - record.errors[attribute] << (options[:message] || I18n.t("validations.invalid_url_chars", :invalid_url_chars => INVALID_URL_CHARS)) if value =~ /[#{INVALID_URL_CHARS}]/ - 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