lib/active_data/model/representation.rb in active_data-1.1.7 vs lib/active_data/model/representation.rb in active_data-1.2.0
- old
+ new
@@ -1,5 +1,6 @@
+require 'active_model/version'
require 'active_data/model/attributes/reflections/represents'
require 'active_data/model/attributes/represents'
module ActiveData
module Model
@@ -65,16 +66,26 @@
#
# {email: ['Some error']}
#
def emerge_represented_attributes_errors!
self.class.represented_attributes.each do |attribute|
- key = :"#{attribute.reference}.#{attribute.column}"
- # Rails 5 pollutes messages with an empty array on key data fetch attempt
- messages = errors.messages[key] if errors.messages.key?(key)
- if messages.present?
- errors[attribute.column].concat(messages)
- errors.delete(key)
+ move_errors(:"#{attribute.reference}.#{attribute.column}", attribute.column)
+ end
+ end
+
+ if ActiveModel.version >= Gem::Version.new('6.1.0')
+ def move_errors(from, to)
+ errors[from].each do |error_message|
+ errors.add(to, error_message)
+ errors.delete(from)
end
+ end
+ else # up to 6.0.x
+ def move_errors(from, to)
+ return unless errors.messages.key?(from) && errors.messages[from].present?
+
+ errors[to].concat(errors.messages[from])
+ errors.delete(from)
end
end
end
end
end