Какова общая лучшая практика, чтобы иметь дело с чем-то вроде этого ..
##Post controller
def show
@post = get_from_memcache
end
##show.html.erb
<div><%= post.body%></div>
<div><%= post.created_at%></div>
<div><%= post.category%></div>
<div><%= Post.favorites_count%></div>
get_from_memcache возвращает объект @post из кэша, срок действия которого практически не истекает, поскольку после создания сообщения его тело, категория, созданные в etc, остаются неизменными.
Однако, на мой взгляд, я вызываю другой метод Favorites_count, который собирает количество избранных сообщений из memcache, и это избранное постоянно меняется.
Это, конечно, упрощение, есть несколько полей, которые меняются.
Теперь, если бы я внедрил какое-то http-кэширование, мне нужно было бы сделать fresh_when или устаревший? в моем методе контроллера (show), который по сути не отображает представления и, следовательно, обновленный счетчик избранных, если только я не использую etag, который охватывает счетчик избранных и другие динамические поля, и в этом случае он как бы побеждает цель, потому что эти поля регулярно меняются .
Как мне справиться с этой ситуацией? Так что я могу воспользоваться прокси-сервером, но обновлять некоторые динамические поля на странице? Одна вещь, о которой я могу подумать - это вызовы ajax другим действиям контроллера для обновления этих полей после загрузки страницы, но это может быть ужасно.
Любые другие рекомендации?