Poiché Rails 4 ha rimosso il caching delle pagine e il caching delle azioni, mi chiedo quale sia il modo Rails 4 per memorizzare un'azione che non ha variabili e ha solo html nella vista? Devo frammentare nella cache l'html statico nella vista? Come faccio a impostare un etag/fresh_quando quando non ci sono modelli con cui impostare la scadenza? Sto facendo fatica a trovare un esempio o una convenzione per memorizzare nella cache quella che dovrebbe essere la pagina più semplice da memorizzare nella cache.Caching/Etag per azione statica in Rails 4
Una nota è che mentre la vista è completamente statica, la pagina ha ancora una barra di navigazione dinamica a seconda che l'utente abbia eseguito l'accesso o meno. Come gestiresti una pagina statica come questa senza ricorrere al caching delle azioni da quando è stata rimossa e la convenzione è stata impostata per non utilizzare la versione gem?
Esempio:
class HomesController < ApplicationController
def index
end
end
case/index.html.erb
<div>A bunch of normal html tags with no erb</div>
Edit: Sulla base di @ Severin risposta e la mia ricerca, qui è quello che ho messo a punto finora.
class HomesController < ApplicationController
def index
fresh_when(["some-identifier", current_user, flash])
end
end
Inoltre, sto usando https://github.com/n8/bust_rails_etags per ripristinare tutte le etags dopo un'implementare perché la vista potrebbe essere cambiato tra implementa. Penso che questo copra l'etag abbastanza bene anche se sono curioso di sapere se sia fresco quando includerà un identificatore della vista automaticamente e se "qualche-idnetificatore" è necessario? Sarà un problema che a volte current_user e flash saranno nulli?
Ora sul secondo punto del frammento nella cache del contenuto statico. Sto assumendo se ho fatto:
cache "v1" do
all my html
end
avrei dovuto ricordarsi di cambiare sempre l'identificatore della cache quando la pagina è cambiata altrimenti la mia applicazione servirebbe contenuto non aggiornato. Un modo per automatizzare anche questo o è già gestito da binari? Sarebbe bello semplicemente mettere in cache l'ultima volta che la vista è stata aggiornata o qualcosa di intelligente, quindi non devo tenere traccia quando il mio contenuto statico è cambiato.
Ho risposto alla seconda parte della domanda nella mia risposta. Se qualcosa non è chiaro o se hai ulteriori domande, non esitare a chiedere loro :) – severin