Skip to content

Commit 00d3aa4

Browse files
committed
adding NotImplementedError when trying to include polymorphic relationships
1 parent d7f5c34 commit 00d3aa4

3 files changed

Lines changed: 4 additions & 4 deletions

File tree

lib/fast_jsonapi/object_serializer.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ def validate_includes!(includes)
237237
parse_include_item(include_item).each do |parsed_include|
238238
relationship_to_include = klass.relationships_to_serialize[parsed_include]
239239
raise ArgumentError, "#{parsed_include} is not specified as a relationship on #{klass.name}" unless relationship_to_include
240-
240+
raise NotImplementedError if relationship_to_include[:polymorphic].is_a?(Hash)
241241
klass = relationship_to_include[:serializer].to_s.constantize
242242
end
243243
end

lib/fast_jsonapi/serialization_core.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ def get_included_records(record, includes_list, known_included_objects, params =
134134
items = parse_include_item(include_item)
135135
items.each do |item|
136136
next unless relationships_to_serialize && relationships_to_serialize[item]
137-
137+
raise NotImplementedError if @relationships_to_serialize[item][:polymorphic].is_a?(Hash)
138138
record_type = @relationships_to_serialize[item][:record_type]
139139
serializer = @relationships_to_serialize[item][:serializer].to_s.constantize
140140
relationship_type = @relationships_to_serialize[item][:relationship_type]

spec/lib/object_serializer_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -199,10 +199,10 @@
199199
expect(advertising_campaigns_serialized).to include(advertising_campaign.id)
200200
end
201201
end
202-
it 'polymorphic' do
202+
it 'polymorphic throws an error that polymorphic is not supported' do
203203
options = {}
204204
options[:include] = [:groupees]
205-
serializable_hash = GroupSerializer.new([group], options).serializable_hash
205+
expect(-> { GroupSerializer.new([group], options)}).to raise_error(NotImplementedError)
206206
end
207207
end
208208

0 commit comments

Comments
 (0)