私はレール4アプリを持っています。私は何らかの形で異なるキャッシュキーを区別しなければならないが、命名規則を知らない。rails4キャッシングの命名規則
FIRST例:
私は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 %>
SECOND例:私も持っている
nの問題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
ページに配置する予定です。これは、私の例の内部キャッシングのように全く同じです。キーが異なっていなければならない場合は、内部の外部キャッシュキーに名前を付けるのがどのような規則ですか?
私の質問は少し奇妙な構造だった。あなたの答えの一部が私の2番目の例を参照しているかどうか教えてください(最初の例と区別するために '@ product'を使用しています)。 –
@SzilardMagyar私は答えを更新しました。最後の部分を見てください。 – abookyun
abookyun、私は私の質問の第2部分を更新しました、それは少し曖昧だったので、あなたはそれを誤解しました。 –