# File lib/flex_commerce_api/json_api_client_extension/has_many_association_proxy.rb, line 53 def primary_key association.association_class.primary_key end
class FlexCommerceApi::JsonApiClientExtension::HasManyAssociationProxy
Attributes
association_name[RW]
container_instance[RW]
options[RW]
real_instance[RW]
Public Class Methods
new(real_instance, container_instance, association_name, options)
click to toggle source
# File lib/flex_commerce_api/json_api_client_extension/has_many_association_proxy.rb, line 6 def initialize(real_instance, container_instance, association_name, options) self.real_instance = real_instance self.container_instance = container_instance self.association_name = association_name self.options = options end
Public Instance Methods
create(attrs)
click to toggle source
# File lib/flex_commerce_api/json_api_client_extension/has_many_association_proxy.rb, line 37 def create(attrs) new(attrs).tap do |instance| instance.save end end
find(pk)
click to toggle source
Finds an instance by primary key
@param [Integer|Number|Float] pk The primary key value to be found @return The resource found or nil if not found
# File lib/flex_commerce_api/json_api_client_extension/has_many_association_proxy.rb, line 19 def find(pk) method = primary_key real_instance.detect {|i| i.send(method) == pk} end
new(attrs)
click to toggle source
Creates a new associated item - if the option “inverse_of” is specified, then automatically create a relationship back to the container with the name specified in “inverse_of”
# File lib/flex_commerce_api/json_api_client_extension/has_many_association_proxy.rb, line 27 def new(attrs) my_attrs = attrs.dup if options.key?(:inverse_of) my_attrs[:relationships] ||= {} # Dont modify the original relationship if it was present below my_attrs[:relationships] = my_attrs[:relationships].merge(options[:inverse_of] => container_instance) end association.association_class.new(my_attrs) end
to_a()
click to toggle source
# File lib/flex_commerce_api/json_api_client_extension/has_many_association_proxy.rb, line 43 def to_a real_instance end
Private Instance Methods
association()
click to toggle source
# File lib/flex_commerce_api/json_api_client_extension/has_many_association_proxy.rb, line 49 def association container_instance.class.associations.detect {|a| a.attr_name == association_name.to_sym} end
primary_key()
click to toggle source