Я работаю над приложением RoR. Я хочу установить ttl для проданных товаров. Функция sold_out_status возвращает productId проданных продуктов и определяется как:
def sold_out_status
query_str = params[:pids]
pids = query_str.split(",")
sold_outs = cache(request.fullpath.to_s, :expires_in => 3600.seconds.to_i) do
pids.select {|x| (Product.find(x).on_hand <= 0)}.join(",")
end
render :text => sold_outs
end
Есть ли способ кэшировать продукты в лаке и установить ttl для распроданных продуктов. Некоторые исследования показали, что ESI может быть хорошей идеей. Но я не смог найти подробную документацию, которой я мог бы следовать, чтобы реализовать это. Кроме того, как я могу получить доступ к выводу sold_out_status в лаке?
EDIT: Распроданные продукты на странице можно найти, перейдя по URL-адресу запроса. Страница, соответствующая этому URL-адресу, содержит идентификаторы распроданных продуктов, представленные в виде текста.