Какова общая наилучшая практика, чтобы справиться с чем-то вроде этого.
##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 из кеша, срок действия которого в основном не истекает, потому что после создания сообщения его тело, категория, место создания и т. д. остаются прежними.
Однако, с моей точки зрения, я вызываю другой метод favourites_count, который собирает количество избранных сообщений из кэша памяти, и это избранное продолжает меняться.
Конечно, это упрощение, есть несколько полей, которые меняются.
Теперь, если бы я реализовал какое-то HTTP-кеширование, мне нужно было бы сделать fresh_when или stale? в моем методе контроллера (show), который по существу не будет отображать представления и, следовательно, обновленный счетчик избранного, если только я не использую etag, который включает в себя счетчик избранного и другие динамические поля, и в этом случае это как бы побеждает цель, потому что эти поля регулярно меняются .
Как мне справиться с этой ситуацией? Итак, я могу воспользоваться прокси-сервером, но при этом обновлять определенные динамические поля на странице? Одна вещь, о которой я могу думать, это ajax-вызовы других действий контроллера для обновления этих полей после загрузки страницы, но это может быть уродливо.
Любые другие рекомендации?