diff options
author | Prathamesh Sonpatki <csonpatki@gmail.com> | 2016-09-07 23:01:11 +0530 |
---|---|---|
committer | Prathamesh Sonpatki <csonpatki@gmail.com> | 2016-09-07 23:11:56 +0530 |
commit | bd60e54021eee93a50d020b11cc42e92cdff4d4b (patch) | |
tree | f72606df68674285eed7e7a519e1f3c7f4a2591d /activerecord/lib | |
parent | 71f37ce4893f63da49e4854db945a8ccb0ae3f5c (diff) | |
download | rails-bd60e54021eee93a50d020b11cc42e92cdff4d4b.tar.gz rails-bd60e54021eee93a50d020b11cc42e92cdff4d4b.tar.bz2 rails-bd60e54021eee93a50d020b11cc42e92cdff4d4b.zip |
Fix issue with `cache_key` when the named timestamp column has value nil
- When the named timestamp column is nil, we should just return the
cache_key with model name and id similar to the behavior of implicit
timestamp columns.
- Fixed one of the issue mentioned in https://github.com/rails/rails/issues/26417.
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/integration.rb | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/activerecord/lib/active_record/integration.rb b/activerecord/lib/active_record/integration.rb index e4c7a55541..3c54c6048d 100644 --- a/activerecord/lib/active_record/integration.rb +++ b/activerecord/lib/active_record/integration.rb @@ -53,18 +53,21 @@ module ActiveRecord # # Person.find(5).cache_key(:updated_at, :last_reviewed_at) def cache_key(*timestamp_names) - case - when new_record? + if new_record? "#{model_name.cache_key}/new" - when timestamp_names.any? - timestamp = max_updated_column_timestamp(timestamp_names) - timestamp = timestamp.utc.to_s(cache_timestamp_format) - "#{model_name.cache_key}/#{id}-#{timestamp}" - when timestamp = max_updated_column_timestamp - timestamp = timestamp.utc.to_s(cache_timestamp_format) - "#{model_name.cache_key}/#{id}-#{timestamp}" else - "#{model_name.cache_key}/#{id}" + timestamp = if timestamp_names.any? + 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 |