Skip to content

Commit e351a74

Browse files
committed
Fix polymorphic type setter
1 parent 54cd05d commit e351a74

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

lib/jsonapi/resource.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ def _replace_polymorphic_to_one_link(relationship_type, key_value, key_type, opt
324324
relationship = self.class._relationships[relationship_type.to_sym]
325325

326326
_model.public_send("#{relationship.foreign_key}=", key_value)
327-
_model.public_send("#{relationship.polymorphic_type}=", key_type.to_s.classify)
327+
_model.public_send("#{relationship.polymorphic_type}=", _model_class_name(key_type))
328328

329329
@save_needed = true
330330

@@ -404,6 +404,12 @@ def _replace_fields(field_data)
404404
:completed
405405
end
406406

407+
def _model_class_name(key_type)
408+
type_class_name = key_type.to_s.classify
409+
resource = self.class.resource_for(type_class_name)
410+
resource ? resource._model_name.to_s : type_class_name
411+
end
412+
407413
class << self
408414
def inherited(subclass)
409415
subclass.abstract(false)

0 commit comments

Comments
 (0)