Fixing issue where fragment cache calls underlying attribute methods multiple times even when cached #924
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fragment cache was calling
Serializer#attributes
method multiple times when trying to trying to resolve cached/non-cached attribute keys, which in turn was calling those respective methods in the underlying ActiveModel object, which results is more calls to the underlying object than if the object wasn't cached.This has now been fixed by getting the fragment cache to use the
Serializer::_attributes
variable which can be used to resolve the cached/non-cached attribute keys.I would have loved to add some tests into this but my Minitest - Fu is non-existent, and I spent way too much time already trying to figure out how to verify the call counts to specific methods, any help on this would be greatly appreciated.