class ActiveModel::Serializer::Associations::HasOne
:nodoc:
def embed_key
def embed_key if key = option(:embed_key) key else :id end end
def embeddable?
def embeddable? if polymorphic? && associated_object.nil? false else true end end
def key
def key if key = option(:key) key elsif embed_ids? && !polymorphic? "#{@name}_id".to_sym else @name end end
def polymorphic?
def polymorphic? option :polymorphic end
def polymorphic_key
def polymorphic_key associated_object.class.to_s.demodulize.underscore.to_sym end
def root
def root if root = option(:root) root elsif polymorphic? associated_object.class.to_s.pluralize.demodulize.underscore.to_sym else @name.to_s.pluralize.to_sym end end
def serializables
def serializables object = associated_object value = object && find_serializable(object) value ? [value] : [] end
def serialize
def serialize object = associated_object if object && polymorphic? { :type => polymorphic_key, polymorphic_key => find_serializable(object).serializable_hash } elsif object find_serializable(object).serializable_hash end end
def serialize_ids
def serialize_ids if polymorphic? if associated_object { :type => polymorphic_key, :id => associated_object.read_attribute_for_serialization(embed_key) } else nil end elsif !option(:embed_key) && source_serializer.object.respond_to?("#{name}_id") source_serializer.object.send("#{name}_id") elsif associated_object associated_object.read_attribute_for_serialization(embed_key) else nil end end