Module: RelatedModelValidation

Defined in:
lib/generators/harmonia/templates/concerns/related_model_validation.rb

Instance Method Summary collapse

Instance Method Details



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