class StoreModel::CombineErrorsStrategies::MergeErrorStrategy
MergeErrorStrategy
copies errors from the StoreModel::Model
to the parent record (for Rails < 6.1) or marks the attribute invalid (for Rails >= 6.1).
Public Instance Methods
call(attribute, base_errors, store_model_errors)
click to toggle source
Merges errors on attribute
from the child model with parent errors.
@param attribute [String] name of the validated attribute @param base_errors [ActiveModel::Errors] errors object of the parent record @param store_model_errors [ActiveModel::Errors] errors object of the StoreModel::Model
attribute
# File lib/store_model/combine_errors_strategies/merge_error_strategy.rb, line 14 def call(attribute, base_errors, store_model_errors) if Rails::VERSION::MAJOR < 6 || Rails::VERSION::MAJOR == 6 && Rails::VERSION::MINOR.zero? base_errors.delete(attribute) store_model_errors.each { |field, error| base_errors.add(field, error) } else store_model_errors.errors.each do |error| base_errors.add(attribute, :invalid, message: error.full_message) end end end