module ActiveModelSerializers::Adapter::JsonApi::Deserialization

def parse_relationship(assoc_name, assoc_data, options)

Other tags:
    Api: - private

Returns:
  • (Hash{Symbol, Object}) -

Parameters:
  • options (Hash) --
  • assoc_data (Hash) --
  • assoc_name (Symbol) --
def parse_relationship(assoc_name, assoc_data, options)
  prefix_key = field_key(assoc_name, options).to_s.singularize
  hash =
    if assoc_data.is_a?(Array)
      { "#{prefix_key}_ids".to_sym => assoc_data.map { |ri| ri['id'] } }
    else
      { "#{prefix_key}_id".to_sym => assoc_data ? assoc_data['id'] : nil }
    end
  polymorphic = (options[:polymorphic] || []).include?(assoc_name.to_sym)
  if polymorphic
    hash["#{prefix_key}_type".to_sym] = assoc_data.present? ? assoc_data['type'] : nil
  end
  hash
end