Ich habe eine Rails 4 App. Ich muss die verschiedenen Cache-Schlüssel irgendwie unterscheiden, kenne aber die Namenskonventionen nicht.rails4 Caching Namenskonventionen
Erstes Beispiel:
Ich habe eine Aufgabe Modell mit index
, completed_tasks
und incoming_tasks
Aktionen. A haben wegen der Seitennummerierung den gleichen Instanznamen (@tasks
).
Im Moment sind die Cache-Keys wie folgt benannt. Meine Fragen: 1. Ist die Cache-Key-Struktur gut genug? 2. Ist es wichtig, in welcher Reihenfolge ich die Teile des Schlüssels in das Array einfüge? Zum Beispiel ist [@tasks.map(&:id), @tasks.map(&:updated_at).max, 'completed-tasks']
besser als ['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 %>
Zweites Beispiel:
Ich habe auch Problem mit dem n aming Konventionen der 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 %>
Ist diese Version gut genug oder ich sollte immer eine Zeichenfolge in beide setzen die äußere und innere Cache Schlüssel Array Probleme mit ähnlich benannten Cache-Tasten auf anderen Seiten zu vermeiden. Zum Beispiel plane ich <% cache(@product) do %>
auf der profile#show
Seite, die genau die gleiche wie die innere Zwischenspeicherung in meinem Beispiel wäre. Wenn der Schlüssel anders sein muss, wie lautet die Konvention rails, um die inneren und äußeren Cache-Schlüssel zu benennen?
abookyun wurde meine Frage etwas seltsam strukturiert. Können Sie mir sagen, ob sich ein Teil Ihrer Antwort auf mein zweites Beispiel bezieht (wo ich '@ product' absichtlich zum Unterschied vom ersten Beispiel verwende)? –
@SzilardMagyar Ich aktualisierte die Antwort, siehe den letzten Teil davon. – abookyun
abookyun, Ich habe den zweiten Teil meiner Frage aktualisiert, es war ein bisschen mehrdeutig, also hast du es falsch verstanden. –