所以我有这两行:
@unTaggedPhotos = Photo.cached_unTagged.sort_by{rand}[0..7]
调用:
Rails.cache.fetch('unTagged', :expires_in => 20.minutes) {Photo.where("hide = 0").limit(300)}
第一次在清除缓存后加载页面时,它可以工作,但后来我得到了冻结对象错误。
奇怪的是,在运行相同代码的网站的实时版本中,这似乎不是问题。 (我还有其他缓存的东西也适用于本地版本)
答案 0 :(得分:0)
我不确定这是否是处理问题的最佳方法,但是当我将其分解为两个步骤并在引用缓存数据时调用ruby的dup方法时,它不再抱怨被冻结。
myUTP = Photo.cached_unTagged.dup
@unTaggedPhotos = myUTP.sort_by{rand}[0..7]