catstodon/app/models/concerns/cacheable.rb

26 lines
512 B
Ruby
Raw Normal View History

2016-11-30 15:57:56 +01:00
# frozen_string_literal: true
module Cacheable
extend ActiveSupport::Concern
module ClassMethods
@cache_associated = []
2016-11-30 15:57:56 +01:00
def cache_associated(*associations)
@cache_associated = associations
end
def with_includes
includes(@cache_associated)
end
def preload_cacheable_associations(records)
ActiveRecord::Associations::Preloader.new(records: records, associations: @cache_associated).call
end
def cache_ids
select(:id, :updated_at)
end
2016-11-30 15:57:56 +01:00
end
end