Rails, TypeError: невозможно изменить замороженный объект, только в режиме разработки - PullRequest
0 голосов
/ 27 ноября 2010

Итак, у меня есть эти две строки:

@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 голосов
/ 28 ноября 2010

Я не уверен, что это лучший способ справиться с проблемой, но когда я разбиваю его на два шага и вызываю метод ruby ​​dup при обращении к кэшированным данным, он больше не жалуется на то, что он больше не зависает.

myUTP = Photo.cached_unTagged.dup
@unTaggedPhotos = myUTP.sort_by{rand}[0..7]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...