Module: ActiveRecordInCache::Methods::ClassMethods
- Defined in:
- lib/active_record_in_cache.rb
Instance Method Summary collapse
-
#in_cache(column = :updated_at, options = {}) ⇒ Object
Returns records while automatically caching with the SQL to execute and the value of
maximum(:updated_at)as key.
Instance Method Details
#in_cache(column = :updated_at, options = {}) ⇒ Object
Returns records while automatically caching with the SQL to execute and
the value of maximum(:updated_at) as key.
Article.all.in_cache
# SELECT MAX("articles"."updated_at") FROM "articles"
# SELECT "articles".* FROM "articles"
#=> #<ActiveRecord::Relation ...>
Article.all.in_cache
# SELECT MAX("articles"."updated_at") FROM "articles"
#=> #<ActiveRecord::Relation ...>
column
If a column is passed, then uses this as the maximum argument.
Article.all.in_cache(:published_at)
# SELECT MAX("articles"."published_at") FROM "articles"
# SELECT "articles".* FROM "articles"
#=> #<ActiveRecord::Relation ...>
options
Supports the same arguments as Rails.cache.
Article.all.in_cache(expires_in: 5.minutes)
39 40 41 42 |
# File 'lib/active_record_in_cache.rb', line 39 def in_cache(column = :updated_at, = {}) name = "#{all.to_sql}_#{all.maximum(column)}" Rails.cache.fetch(name, ) { all.to_a } end |