Skip to content

Commit cd96896

Browse files
committed
Merge branch 'ouvrages-exclude_nil_links'
2 parents b9e7dc5 + 87bffef commit cd96896

File tree

4 files changed

+5
-2
lines changed

4 files changed

+5
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
Breaking changes:
66

77
Features:
8+
- [#1668](https://github.com/rails-api/active_model_serializers/pull/1668) Exclude nil and empty links. (@sigmike)
89
- [#1426](https://github.com/rails-api/active_model_serializers/pull/1426) Add ActiveModelSerializers.config.default_includes (@empact)
910

1011
Fixes:

lib/active_model_serializers/adapter/json_api.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,8 @@ def relationships_for(serializer, requested_associations)
474474
# }.reject! {|_,v| v.nil? }
475475
def links_for(serializer)
476476
serializer._links.each_with_object({}) do |(name, value), hash|
477-
hash[name] = Link.new(serializer, value).as_json
477+
result = Link.new(serializer, value).as_json
478+
hash[name] = result if result
478479
end
479480
end
480481

lib/active_model_serializers/adapter/json_api/link.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def as_json
7171
hash[:href] = @href if defined?(@href)
7272
hash[:meta] = @meta if defined?(@meta)
7373

74-
hash
74+
hash.any? ? hash : nil
7575
end
7676

7777
protected

test/adapter/json_api/links_test.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class LinkAuthorSerializer < ActiveModel::Serializer
1717
link :yet_another do
1818
"http://example.com/resource/#{object.id}"
1919
end
20+
link(:nil) { nil }
2021
end
2122

2223
def setup

0 commit comments

Comments
 (0)