class JSONAPI::Relationship::ToOne
Attributes
foreign_key_on[R]
Public Class Methods
new(name, options = {})
click to toggle source
Calls superclass method
JSONAPI::Relationship::new
# File lib/jsonapi/relationship.rb, line 133 def initialize(name, options = {}) super @class_name = options.fetch(:class_name, name.to_s.camelize) @foreign_key ||= "#{name}_id".to_sym @foreign_key_on = options.fetch(:foreign_key_on, :self) if parent_resource @inverse_relationship = options.fetch(:inverse_relationship, parent_resource._type) end end
Public Instance Methods
allow_include?(context = nil)
click to toggle source
# File lib/jsonapi/relationship.rb, line 163 def allow_include?(context = nil) strategy = if @allow_include.nil? JSONAPI.configuration.default_allow_include_to_one else @allow_include end if !!strategy == strategy #check for boolean return strategy elsif strategy.is_a?(Symbol) || strategy.is_a?(String) parent_resource.send(strategy, context) else strategy.call(context) end end
belongs_to?()
click to toggle source
# File lib/jsonapi/relationship.rb, line 149 def belongs_to? # :nocov: foreign_key_on == :self # :nocov: end
include_optional_linkage_data?()
click to toggle source
# File lib/jsonapi/relationship.rb, line 159 def include_optional_linkage_data? @always_include_optional_linkage_data || JSONAPI::configuration.always_include_to_one_linkage_data end
polymorphic_type()
click to toggle source
# File lib/jsonapi/relationship.rb, line 155 def polymorphic_type "#{name}_type" if polymorphic? end
to_s()
click to toggle source
# File lib/jsonapi/relationship.rb, line 143 def to_s # :nocov: useful for debugging "#{parent_resource}.#{name}(#{belongs_to? ? 'BelongsToOne' : 'ToOne'})" # :nocov: end