From a39794df5b72f47f8cf65f8d19e3ab5ff760adf2 Mon Sep 17 00:00:00 2001 From: Nikita Sokolov Date: Sat, 29 Dec 2018 10:42:25 +0300 Subject: [PATCH] LazyAssociation#object should not reevaluate reflection values --- CHANGELOG.md | 1 + lib/active_model/serializer/lazy_association.rb | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c28536da..fd55fa3e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ Features: Fixes: +- [#2307](https://github.com/rails-api/active_model_serializers/pull/2307) Falsey attribute values should not be reevaluated. Misc: diff --git a/lib/active_model/serializer/lazy_association.rb b/lib/active_model/serializer/lazy_association.rb index e0eac8a7..b113abb0 100644 --- a/lib/active_model/serializer/lazy_association.rb +++ b/lib/active_model/serializer/lazy_association.rb @@ -11,7 +11,8 @@ module ActiveModel end def object - @object ||= reflection.value( + return @object if defined?(@object) + @object = reflection.value( association_options.fetch(:parent_serializer), association_options.fetch(:include_slice) )