diff --git a/lib/active_model/serializer/field.rb b/lib/active_model/serializer/field.rb index 79f97e7b..1134bb35 100644 --- a/lib/active_model/serializer/field.rb +++ b/lib/active_model/serializer/field.rb @@ -25,7 +25,7 @@ module ActiveModel # @api private # def included?(serializer) - case condition + case condition_type when :if serializer.public_send(condition) when :unless @@ -38,13 +38,14 @@ module ActiveModel private def condition_type - if options.key?(:if) - :if - elsif options.key?(:unless) - :unless - else - :none - end + @condition_type ||= + if options.key?(:if) + :if + elsif options.key?(:unless) + :unless + else + :none + end end def condition