#ruby-on-rails #caching #fragment-caching
#ruby-on-rails #кэширование #кэширование фрагментов
Вопрос:
В настоящее время я использую кэширование фрагментов с помощью ключа объекта. И я истекаю срок действия кэша с помощью Touch, обновляя столбец updated_at, а затем текущий кэш становится устаревшим. И в следующий раз будет сгенерирован новый кэш.
<% cache do product %>
Ключ кэша для объекта выглядит следующим образом
table_name/ID-updated_at
Теперь я хочу кэшировать свои продукты где-нибудь в другом месте. Для этого я хотел бы сделать то же самое, что и раньше, то есть просто указать объект в параметрах кэша, но я не могу этого сделать : (
Было бы здорово, если бы я мог сгенерировать подобный ключ, чтобы срок действия моего кэша по-прежнему истекал при касании.
table_name/ID-something_updated_at
<% cache product,something do %>
К сожалению, это невозможно, у кого-нибудь есть идеи, как я мог бы решить свою проблему?
Грег
Ответ №1:
Вы можете передать во фрагмент любой старый массив, который вам нравится, так что это довольно простое изменение для достижения того, что вам нужно:
<% cache [product, other, product.updated_at] do %>
...
<% end %>