Rails 4アプリがあります。どういうわけか異なるキャッシュ キーを区別する必要がありますが、命名規則がわかりません。
最初の例:
index
、completed_tasks
およびincoming_tasks
アクションを含むタスクモデルがあります。ページネーションのため、 A は同じインスタンス名 ( @tasks
) を持っています。
現在、キャッシュキーは以下のように命名されています。私の質問: 1. キャッシュキー構造は十分ですか? 2. キーのパーツを配列に入れる順序は重要ですか? たとえば、 ?[@tasks.map(&:id), @tasks.map(&:updated_at).max, 'completed-tasks']
よりも優れています。['completed-tasks', @tasks.map(&:id), @tasks.map(&:updated_at).max]
completed_tasks.html.erb
<% cache([@tasks.map(&:id), @tasks.map(&:updated_at).max, 'completed-tasks']) do %>
<%= render @tasks %>
<% end %>
tasks.html.erb
<% cache([@tasks.map(&:id), @tasks.map(&:updated_at).max]) do %>
<%= render @tasks %>
<% end %>
incoming_tasks.html.erb
<% cache([@tasks.map(&:id), @tasks.map(&:updated_at).max, 'incoming-tasks']) do %>
<%= render @tasks %>
<% end %>
2 番目の例:
の命名規則にも問題がありますrussian-doll-caching
。
products/index.html.erb
<% cache([@products.map(&:id), @products.map(&:updated_at).max]) do %>
<%= render @products %>
<% end %>
_product.html.erb
<% cache(product) do %>
<%= product.name %>
....
<% end %>
このバージョンで十分でしょうか。それとも、他のページで同様の名前のキャッシュ キーが発生する問題を回避するために、外部と内部の両方のキャッシュ キー配列に文字列を常に配置する必要があります。たとえば、私の例の内部キャッシュとまったく同じページを配置する予定です<% cache(@product) do %>
。profile#show
キーが異なる必要がある場合、内側のキャッシュキーと外側のキャッシュキーに名前を付けるレールの規則は何ですか?