Rails 4.2.6のhamlに次のスニペットがあります。そこでは、レコードがいっぱいになってから翌日に移動します。ロシアのドールキャッシングを使用して、300個のチケットをレンダリングするページの読み込みを高速化したいのですが、コレクションのキャッシュキーを作成する方法がわかりません。Railsでロシア人形を使ってコレクションをキャッシュする方法は?
キャッシュキー@tickets.where(calendar_date: day).order(:calendar_order)
?
次に、個々のチケットをキャッシュする必要があります。私がここで助けを求める時には、私はちょっと混乱していると考えてください。だから私の質問が不明な場合は、それが必要かどうかを明確にさせてください。
day
変数は、コード内で先にインクリメントされることに注意してください。
.row(data-row-date="#{ day }")
- @tickets.where(calendar_date: day).order(:calendar_order).each do |t|
- cache(t) do
# code for each job ticket
UPDATE
次のコードは、私の以前の試みよりも良い作品が、私はキーが正常に期限切れとなるかどうか、それは正確だかはわかりません。
.row(data-row-date="#{ day }")
- tickets = @tickets.where(calendar_date: day).order(:calendar_order)
- cache(["day-#{day}", tickets.map(&:id), tickets.maximum(:updated_at)]) do
- tickets.each do |t|
- cache(t) do
正しい軌道にいるかどうか教えてください。親切にありがとう。
私はそれぞれの「日」にネストされたキャッシュを作成します。これまでのところ、heroku redisについて約2Mbほどうまくいっているようです。ありがとうございました。 – tidelake
日付はDateオブジェクトであり、アプリケーションはDallasの1つのオフィスグループ用であるため、異なるタイムゾーンは必要ありません。私はどこにでも 'update_all'を使っているとは思っていません。私はそれを念頭に置いています。ありがとうございました。 – tidelake