summaryrefslogtreecommitdiff
path: root/app/models/concerns/faster_cache_keys.rb
blob: 5b14723fa2db71db1c02aa1f6886683622961729 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
module FasterCacheKeys
  # A faster version of Rails' "cache_key" method.
  #
  # Rails' default "cache_key" method uses all kind of complex logic to figure
  # out the cache key. In many cases this complexity and overhead may not be
  # needed.
  #
  # This method does not do any timestamp parsing as this process is quite
  # expensive and not needed when generating cache keys. This method also relies
  # on the table name instead of the cache namespace name as the latter uses
  # complex logic to generate the exact same value (as when using the table
  # name) in 99% of the cases.
  def cache_key
    "#{self.class.table_name}/#{id}-#{read_attribute_before_type_cast(:updated_at)}"
  end
end