class AdminSetting < ActiveRecord::Base def self.to_bool(value) value == 't' end def self.from_bool(value) value ? 't' : 'f' end def self.add(key, value) value = self.from_bool(value) if value == true || value == false self.create(key: key, value: value) end def self.get(key) existing = Rails.cache.read("admin_setting/#{key}") return existing unless existing.nil? setting = self.find_by(key: key) return nil if setting.nil? Rails.cache.write("admin_setting/#{key}", setting.value) setting.value end def self.get_bool(key) self.to_bool(self.get(key)) end def self.set(key, value) existing = self.get(key) return false if existing.nil? || existing == value self.find_by(key: key).update(value: value) Rails.cache.write("admin_setting/#{key}", value) true end def self.set_bool(key, value) self.set(key, self.from_bool(value)) end end