Class: JsonApiModel::Associations::Has

Inherits:
Base
  • Object
show all
Defined in:
lib/json_api_model/associations/has.rb

Direct Known Subclasses

HasMany, HasOne

Instance Attribute Summary

Attributes inherited from Base

#key, #name, #opts

Instance Method Summary collapse

Methods inherited from Base

#fetch, #initialize

Constructor Details

This class inherits a constructor from JsonApiModel::Associations::Base

Instance Method Details

#actionObject



5
6
7
# File 'lib/json_api_model/associations/has.rb', line 5

def action
  :where
end

#additional_optionsObject



21
22
23
# File 'lib/json_api_model/associations/has.rb', line 21

def additional_options
  [ :as, :through ]
end

#query(instance) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/json_api_model/associations/has.rb', line 9

def query( instance )
  if instance.has_relationship_ids? name
    { id: instance.relationship_ids( name ) }
  elsif through?
    { id: target_ids( instance ) }
  elsif as?
      { "#{as}_id" => instance.id }
  else
    { key => instance.id }
  end
end