2014-11-18 2 views
0

Я использую кеширование фрагментов рельсов, а внутри фрагмента есть файл изображения. Если я разворачиваю (очищая активы) с обновленным изображением, отпечаток пальца изображения будет меняться. Таким образом, пока фрагмент не истечет, он будет указывать на старое изображение и быть сломанным. Как я могу закончить фрагмент, чтобы получить обновленное изображение (кстати, я не могу запустить rails cache clear)?Rails: Как пропустить фрагменты с устаревшими активами

ответ

0

Согласно Rails Cache Guide, Вы можете истекают фрагмент

expire_fragment(controller: 'products', action: 'recent', action_suffix: 'all_products') 

Вы можете даже назвать свой сегмент кэша, т.е.

<% cache('some_image') do %> 
    *Your code here* 
<% end %> 

А потом истекают его под этим именем

expire_fragment('some_image') 
+0

проблема с этим решением заключается в том, что я должен знать все фрагменты кеша с изображениями в них и ts невозможно для большого веб-сайта. – peter

+0

Вы действительно не придавали никакого контекста вашей ситуации кодирования, поэтому очень сложно обеспечить точное решение. Теперь, когда вы знаете, что вы можете завершить фрагмент, я бы предложил прочитать Руководство по кэшированию Rails и посмотреть некоторые другие параметры (например, вспомогательную функцию). И в следующий раз, когда вы зададите вопрос, каждый может выиграть, если вы предоставите код, контекст, то, что вы пробовали, и что хотите. Это дает нам более полное представление о том, как помочь вам, тогда мы можем помочь больше, чем опубликовать общее решение со ссылкой на ресурс. Удачи – JTG

Смежные вопросы