繁体   English   中英

Rails,TypeError:仅在开发模式下无法修改冻结的对象

[英]Rails, TypeError: can't modify frozen object, only in Development mode

所以我有这两行:

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

哪个调用:

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

在清除缓存后,我第一次加载页面时它可以工作,但是随后出现冻结的对象错误。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM