Replace cache_key_for_taxons with cache #1688
Merged
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.
Rails 5.0 supports generating a cache key from a scope, using a similar technique to what
cache_key_for_taxons
was using. This commit deprecatescache_key_for_taxons
favour of using cache with a scope directly.Passing a scope or collection to
cache
will generate a hash based on the scope andMAX(updated_at)
andCOUNT(*)
. This is better than the existing helper because it takes the full scope into account and finds the max_updated_at and count values in a single query.I'd like to have done the same for
cache_key_for_products
, but can't because that query is constantly changing due to querying onavailable_on <= Time.current
. I may investigate rounding this timestamp for a different PR.