24 lines
533 B
Ruby
24 lines
533 B
Ruby
module ModelCaching
|
|
extend ActiveSupport::Concern
|
|
|
|
def write_cache(action, value, expiration_time)
|
|
Rails.cache.write(cache_key_generator(action), value, expires_in: expiration_time.seconds)
|
|
end
|
|
|
|
def read_cache(action)
|
|
Rails.cache.read(cache_key_generator(action))
|
|
end
|
|
|
|
def delete_cache(action)
|
|
Rails.cache.delete(cache_key_generator(action))
|
|
end
|
|
|
|
private
|
|
|
|
def cache_key_generator(action)
|
|
class_name = self.class.name.to_s
|
|
object_id = id.to_s
|
|
"#{class_name}_#{object_id}_#{action}"
|
|
end
|
|
end
|