私はRoRアプリに取り組んでいます。売り切れ商品にttlを設定したい。sold_out_status 関数は、売り切れの製品の productIds を返し、次のように定義されます。
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 が良いアイデアである可能性があることが示されました。しかし、これを実装するために従うことができる詳細なドキュメントが見つかりませんでした。また、varnish で sold_out_status の出力にアクセスするにはどうすればよいですか?
編集:ページ上の完売した製品は、リクエスト URL をたどることで見つけることができます。この URL に対応するページには、テキストとしてレンダリングされた完売した製品の ID が含まれています。