Rails,TypeError:只能在开发模式下修改冻结对象

时间:2010-11-26 22:33:44

标签: ruby-on-rails caching

所以我有这两行:

@unTaggedPhotos = Photo.cached_unTagged.sort_by{rand}[0..7]

调用:

Rails.cache.fetch('unTagged', :expires_in => 20.minutes) {Photo.where("hide = 0").limit(300)}

第一次在清除缓存后加载页面时,它可以工作,但后来我得到了冻结对象错误。

奇怪的是,在运行相同代码的网站的实时版本中,这似乎不是问题。 (我还有其他缓存的东西也适用于本地版本)

1 个答案:

答案 0 :(得分:0)

我不确定这是否是处理问题的最佳方法,但是当我将其分解为两个步骤并在引用缓存数据时调用ruby的dup方法时,它不再抱怨被冻结。

myUTP = Photo.cached_unTagged.dup
@unTaggedPhotos = myUTP.sort_by{rand}[0..7]