From 42d92037960d9ba3a5b5b97f7be80a33ca98098b Mon Sep 17 00:00:00 2001 From: Alessandro Dal Grande Date: Sat, 21 Jul 2018 22:27:10 -0700 Subject: [PATCH] Fix confusing error when using include and no relationship was set If you forgot to set any `has_many` in the serializer and tried to serialize with an `include` you would get: ``` NoMethodError (undefined method `[]' for nil:NilClass): ``` That is not very helpful. Setting the variable with a default case makes sure the right error message gets displayed. --- lib/fast_jsonapi/object_serializer.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/fast_jsonapi/object_serializer.rb b/lib/fast_jsonapi/object_serializer.rb index 28b4390..afab577 100644 --- a/lib/fast_jsonapi/object_serializer.rb +++ b/lib/fast_jsonapi/object_serializer.rb @@ -292,7 +292,8 @@ module FastJsonapi includes.detect do |include_item| klass = self parse_include_item(include_item).each do |parsed_include| - relationship_to_include = klass.relationships_to_serialize[parsed_include] + relationships_to_serialize = klass.relationships_to_serialize || {} + relationship_to_include = relationships_to_serialize[parsed_include] raise ArgumentError, "#{parsed_include} is not specified as a relationship on #{klass.name}" unless relationship_to_include raise NotImplementedError if relationship_to_include.polymorphic.is_a?(Hash) klass = relationship_to_include.serializer.to_s.constantize