diff options
author | Thibaut Girka <thib@sitedethib.com> | 2019-03-26 17:39:20 +0100 |
---|---|---|
committer | Thibaut Girka <thib@sitedethib.com> | 2019-03-26 17:39:20 +0100 |
commit | fae53e1a39209726d74b5ac93c863f98d4e73f26 (patch) | |
tree | cfeaa7fa6e6345f81c6df3bb16ed423a5d849cce /app/validators | |
parent | 872eab57847e21a349e02af3260a6d6b3f550ecb (diff) | |
parent | 6df4a8296996181d56a22535b86830c0ab56086e (diff) |
Merge branch 'master' into glitch-soc/merge-upstream
Diffstat (limited to 'app/validators')
-rw-r--r-- | app/validators/html_validator.rb | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/app/validators/html_validator.rb b/app/validators/html_validator.rb index 882c35d41..b7caee5a9 100644 --- a/app/validators/html_validator.rb +++ b/app/validators/html_validator.rb @@ -3,12 +3,16 @@ class HtmlValidator < ActiveModel::EachValidator def validate_each(record, attribute, value) return if value.blank? - record.errors.add(attribute, I18n.t('html_validator.invalid_markup')) unless valid_html?(value) + errors = html_errors(value) + unless errors.empty? + record.errors.add(attribute, I18n.t('html_validator.invalid_markup', error: errors.first.to_s)) + end end private - def valid_html?(str) - Nokogiri::HTML.fragment(str).to_s == str + def html_errors(str) + fragment = Nokogiri::HTML.fragment(str) + fragment.errors end end |