Class: JSONApi::RelationshipSerializer::ToManySerializer

Inherits:
JSONApi::RelationshipSerializer show all
Defined in:
lib/json_api/relationship_serializer.rb

Instance Method Summary collapse

Methods inherited from JSONApi::RelationshipSerializer

#as_json

Instance Method Details

#data_for(object, options) ⇒ Object



61
62
63
64
65
66
67
# File 'lib/json_api/relationship_serializer.rb', line 61

def data_for(object, options)
  return if options[:data] != true

  ids = relationship_for(object, options)
  ids.map { |id| resource_identifier_for(type_for(object, options), id) }
     .compact
end

#key_for(**options) ⇒ Object



57
58
59
# File 'lib/json_api/relationship_serializer.rb', line 57

def key_for(**options)
  "#{super}_ids"
end


69
70
71
72
73
74
75
76
# File 'lib/json_api/relationship_serializer.rb', line 69

def links_for(object, options)
  return if options[:links] == false

  id   = Utils.canonicalize_id(object.send(options[:id_attribute] || :id))
  type = Utils.canonicalize_attribute_name(options[:name])

  { related: "#{options[:base_url] || ""}/#{options[:parent_type]}/#{id}/#{type}" }
end