Поскольку кэширование страниц фактически сохраняет файл .html
, который веб-сервер получает напрямую, полностью обходя Rails, вы не можете использовать этот метод.
Лучшим подходом может быть кэширование содержимогостраницы условно.Я обычно реализую метод cache_if
, который оборачивается вокруг метода view cache
и может принимать условие:
def cache_if(condition, *options, &block)
if (!condition)
yield
else
cache(*options, &block)
end
end
При использовании он будет выглядеть так:
<% cache_if(!current_user, '#content') %>
...
<% end %>