module HtmlBlankable extend ActiveSupport::Concern class_methods do def clears_blank_html(*attributes) before_validation do attributes.each do |attribute| value = public_send(attribute) public_send("#{attribute}=", "") if HtmlBlankable.blank_html?(value) end end end end def self.blank_html?(html) html.to_s.gsub(/<[^>]*>/, " ").gsub(" ", " ").gsub(/\s+/, " ").strip.blank? end end