diff --git a/lib/active_data/model/representation.rb b/lib/active_data/model/representation.rb index 974f020..f7cc681 100644 --- a/lib/active_data/model/representation.rb +++ b/lib/active_data/model/representation.rb @@ -74,12 +74,15 @@ def emerge_represented_attributes_errors! if ActiveModel.version >= Gem::Version.new('6.1.0') def move_errors(from, to) - errors.each do |error| - next unless error.attribute == from + errors.where(from).each do |error| + options = error.options + # If we generate message for built-in validation, we don't want to later escape it in our monkey-patch + options = options.merge(message: error.message.html_safe) unless options.key?(:message) - errors.add(to, error.type, message: error.message) - errors.delete(error.attribute, error.type) + errors.add(to, error.type, **options) end + + errors.delete(from) end else # up to 6.0.x def move_errors(from, to)