我正在嘗試生成一個片段緩存(使用Dalli/Memcached存儲),但是使用「#」作爲鍵的一部分生成密鑰,所以Rails似乎沒有要認識到有一個緩存值並正在擊中數據庫。作爲ActiveRecord生成的Rails緩存鍵::關係
在查看我的緩存鍵看起來是這樣的:
cache([@jobs, "index"]) do
該控制器具有:
@jobs = @current_tenant.active_jobs
通過這樣的實際活動記錄查詢:
def active_jobs
self.jobs.where("published = ? and expiration_date >= ?", true, Date.today).order("(featured and created_at > now() - interval '" + self.pinned_time_limit.to_s + " days') desc nulls last, created_at desc")
end
看着rails服務器,我看到緩存讀取,但SQL查詢仍在運行:
Cache read: views/#<ActiveRecord::Relation:0x007fbabef9cd58>/1-index
Read fragment views/#<ActiveRecord::Relation:0x007fbabef9cd58>/1-index (1.0ms)
(0.6ms) SELECT COUNT(*) FROM "jobs" WHERE "jobs"."tenant_id" = 1 AND (published = 't' and expiration_date >= '2013-03-03')
Job Load (1.2ms) SELECT "jobs".* FROM "jobs" WHERE "jobs"."tenant_id" = 1 AND (published = 't' and expiration_date >= '2013-03-03') ORDER BY (featured and created_at > now() - interval '7 days') desc nulls last, created_at desc
有關我可能會做什麼錯的任何想法?我相信它必須做的關鍵生成和ActiveRecord ::關係,但我不知道如何。
該鏈接返回一個404 ... – 2014-02-16 13:29:33