1
當我運行:爲什麼從db而不是緩存加載結果?
IpPermission.blacklist.pluck(:ip)
我得到的結果:
=> ["127.0.0.11012q", "50.36.46.48"]
如果我手動更改任何在ip_permissions表中的行,並再次運行IpPermission.blacklist.pluck(:ip)
。它顯示更新的結果。它不應該從緩存中加載結果,而不是直接從數據庫中加載結果?
我的模型看起來像:
class IpPermission < ActiveRecord::Base
validates_presence_of :ip, :note, :category
validates_uniqueness_of :ip, :scope => [:category]
validates :category, :inclusion => { :in => ['whitelist', 'blacklist'] }
def self.whitelist
Rails.cache.fetch('whitelist', :expires_in => 1.month) { self.where(:category => 'whitelist') }
end
def self.blacklist
Rails.cache.fetch('blacklist', :expires_in => 1.month) { self.where(:category => 'blacklist') }
end
end
我希望你正在開發嘗試這些東西,你能告訴我什麼是' config.action_controller.perform_caching'在您的development.rb文件中? – AnandVeeramani
將其設置爲'false' –
您可以嘗試將其設置爲「true」並重新啓動服務器?並看看它是否有效? – AnandVeeramani