instance method
cache_key
Ruby on Rails 5.2.8.1
Since v3.2.22.5Signature
cache_key(*timestamp_names)
Returns a stable cache key that can be used to identify this record.
Product.new.cache_key # => "products/new" Product.find(5).cache_key # => "products/5"
If ActiveRecord::Base.cache_versioning is turned off, as it was in Rails 5.1 and earlier, the cache key will also include a version.
Product.cache_versioning = false Person.find(5).cache_key # => "people/5-20071224150000" (updated_at available)
Parameters
-
timestamp_namesrest
Source
# File activerecord/lib/active_record/integration.rb, line 64
def cache_key(*timestamp_names)
if new_record?
"#{model_name.cache_key}/new"
else
if cache_version && timestamp_names.none?
"#{model_name.cache_key}/#{id}"
else
timestamp = if timestamp_names.any?
ActiveSupport::Deprecation.warn(<<-MSG.squish)
Specifying a timestamp name for #cache_key has been deprecated in favor of
the explicit #cache_version method that can be overwritten.
MSG
max_updated_column_timestamp(timestamp_names)
else
max_updated_column_timestamp
end
if timestamp
timestamp = timestamp.utc.to_s(cache_timestamp_format)
"#{model_name.cache_key}/#{id}-#{timestamp}"
else
"#{model_name.cache_key}/#{id}"
end
end
end
end
Defined in activerecord/lib/active_record/integration.rb line 64
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::Integration