You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
class Repertoire < ApplicationRecord
|
|
|
|
has_many :sub_repertoires, ->{order(updated_at: :desc)}, :dependent => :destroy
|
|
|
|
|
|
|
|
has_many :tag_repertoires, through: :sub_repertoires
|
|
|
|
has_many :user_interests, dependent: :delete_all
|
|
|
|
|
|
|
|
after_create_commit :reset_cache_data
|
|
|
|
after_update_commit :reset_cache_data
|
|
|
|
|
|
|
|
def self.cache_data
|
|
|
|
Rails.cache.fetch(data_cache_key, expires_in: 1.days) do
|
|
|
|
Repertoire.select(:id, :name).order(:created_at).as_json
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.data_cache_key
|
|
|
|
'repertoire/cache_data'
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def reset_cache_data
|
|
|
|
Rails.cache.delete(self.class.data_cache_key)
|
|
|
|
end
|
|
|
|
end
|