From 87bffef945cbbf2bbaf3467e96da7d8e71186e94 Mon Sep 17 00:00:00 2001 From: Michael Witrant Date: Thu, 7 Apr 2016 19:07:59 +0200 Subject: [PATCH] Exclude links without any data --- lib/active_model_serializers/adapter/json_api.rb | 3 ++- lib/active_model_serializers/adapter/json_api/link.rb | 1 + test/adapter/json_api/links_test.rb | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/active_model_serializers/adapter/json_api.rb b/lib/active_model_serializers/adapter/json_api.rb index c324798c..5d3f16c2 100644 --- a/lib/active_model_serializers/adapter/json_api.rb +++ b/lib/active_model_serializers/adapter/json_api.rb @@ -464,7 +464,8 @@ module ActiveModelSerializers # }.reject! {|_,v| v.nil? } def links_for(serializer) serializer._links.each_with_object({}) do |(name, value), hash| - hash[name] = Link.new(serializer, value).as_json + result = Link.new(serializer, value).as_json + hash[name] = result if result end end diff --git a/lib/active_model_serializers/adapter/json_api/link.rb b/lib/active_model_serializers/adapter/json_api/link.rb index 40c5d489..6f1ad4dd 100644 --- a/lib/active_model_serializers/adapter/json_api/link.rb +++ b/lib/active_model_serializers/adapter/json_api/link.rb @@ -71,6 +71,7 @@ module ActiveModelSerializers hash[:href] = @href if defined?(@href) hash[:meta] = @meta if defined?(@meta) + return nil if hash.empty? hash end diff --git a/test/adapter/json_api/links_test.rb b/test/adapter/json_api/links_test.rb index 8f26f34a..74c933fe 100644 --- a/test/adapter/json_api/links_test.rb +++ b/test/adapter/json_api/links_test.rb @@ -17,6 +17,7 @@ module ActiveModelSerializers link :yet_another do "http://example.com/resource/#{object.id}" end + link(:nil) { nil } end def setup