Они действительно бесплатны. Etags / fresh_when и т. Д. Помогают вам хорошо играть с нижестоящими кешами (такими как ваши собственные экземпляры Varnish / Squid или Rack :: Cache или кеш браузера или прокси-серверы ISP…)
Кэширование страниц избавляет вас от попадания в стек рельсов полностью, поскольку Apache / ваш веб-сервер обслуживают файл, поэтому поиск БД не производится. Но вы должны иметь дело с истечением срока действия кэша, чтобы сохранить его свежим.
Используя etags / условное получение, вы не экономите много времени на обработку, так как вам все еще нужно получить все записи, используемые на странице:
def show
@article = Article.find(params[:id])
@feature = Feature.current
fresh_when :etag => [@article, @feature]
end
в случае, если у пользователя есть текущая страница, это экономит вам некоторое время рендеринга и пропускную способность, необходимую для отправки вниз по странице.