educoder/app/models/department.rb

25 lines
593 B

6 years ago
class Department < ApplicationRecord
belongs_to :school
has_many :department_members, dependent: :destroy
6 years ago
after_commit :reset_data_cache
def self.cached_names_data(school)
Rails.cache.fetch(names_data_cache_key(school.id), expires_in: 7.days) do
school.departments.select(:id, :name).as_json
end
end
private
def reset_data_cache
# 清除部门名称缓存
6 years ago
Rails.cache.delete(self.class.names_data_cache_key(school_id))
end
def self.names_data_cache_key(school_id)
"schools/#{school_id}/department_names_data"
end
6 years ago
end