4
5
6
7
8
9
10
11
12
13
14
15
|
# File 'lib/generators/harmonia/templates/concerns/related_model_validation.rb', line 4
def validate_related_models(record, fm_model_class)
references = fm_model_class.related_models.map { |field, model| [record.send(field), model] }
errors = references.filter_map do |fm_id, model|
label = model.name.demodulize.underscore
if fm_id.blank?
"#{label} is blank in FileMaker"
elsif model.find_by(filemaker_id: fm_id).nil?
"#{label} with FileMaker id '#{fm_id}' not found in PostgreSQL"
end
end
"Skipped: #{errors.join(', ')}" if errors.any?
end
|