diff --git a/lib/jsonapi/resource.rb b/lib/jsonapi/resource.rb index a5bb1d791..94c0c097c 100644 --- a/lib/jsonapi/resource.rb +++ b/lib/jsonapi/resource.rb @@ -324,7 +324,7 @@ def _replace_polymorphic_to_one_link(relationship_type, key_value, key_type, opt relationship = self.class._relationships[relationship_type.to_sym] _model.public_send("#{relationship.foreign_key}=", key_value) - _model.public_send("#{relationship.polymorphic_type}=", _model_class_name(key_type)) + _model.public_send("#{relationship.polymorphic_type}=", self.class.model_name_for_type(key_type)) @save_needed = true @@ -404,12 +404,6 @@ def _replace_fields(field_data) :completed end - def _model_class_name(key_type) - type_class_name = key_type.to_s.classify - resource = self.class.resource_for(type_class_name) - resource ? resource._model_name.to_s : type_class_name - end - class << self def inherited(subclass) subclass.abstract(false) @@ -467,6 +461,12 @@ def resource_type_for(model) end end + def model_name_for_type(key_type) + type_class_name = key_type.to_s.classify + resource = resource_for(type_class_name) + resource ? resource._model_name.to_s : type_class_name + end + attr_accessor :_attributes, :_relationships, :_type, :_model_hints attr_writer :_allowed_filters, :_paginator