Module: RelatedModelResolver

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

Instance Method Summary collapse

Instance Method Details

FM models extend this and define related_models to declare which FM fields must resolve to a local PG record. Returns a hash of resolved IDs, or nil if any required reference cannot be resolved.

Example:

def self.related_models
  [[:sales_region_id, ::SalesRegion], [:administration_id, ::Administration]]
end


12
13
14
15
16
17
18
19
# File 'lib/generators/harmonia/templates/concerns/related_model_resolver.rb', line 12

def resolve_related_models(record)
  related_models.each_with_object({}) do |(field, model), hash|
    resolved = model.find_by(filemaker_id: record.send(field))&.id
    return nil if resolved.nil?

    hash[field] = resolved
  end
end