Wie kann ich Caching bei Ausnahme verhindern? Ich habe diese Aktion:Verhindern des Zwischenspeicherns bei Ausnahme in Ruby on Rails
caches_page :index
...
def index
if params[:city]
city = City.find(params[:city])
@shows = city.shows
else
@shows = Show.all
end
...
Wenn Fund mit ActionRecord abgestürzt :: RecordNotFound nichts im Cache - es ist ok. Aber ich möchte diese Ausnahme auch nicht in meiner Protokolldatei. Aber wenn ich:
begin
city = City.find(params[:city])
rescue ActiveRecord::RecordNotFound
render :nothing => true
return
end
leere Seite zwischengespeichert!
Was ich in dieser Situation tun soll?
Ich cache JSON-Seite mit Shows für die Stadt und ich denke, Seitencache ist die beste Wahl (vielleicht nicht - ich habe gerade angefangen, Schienen zu lernen). Aber Ihre Lösung erfordert eine zusätzliche Datenbankanforderung für die Stadt (ich brauche es in meinem Controller) - mein sei es gibt andere Optionen ... – Donotello
hoffe ich. Schlage vor, das Fragment-Caching zu verwenden. Sehen Sie sich http://broadcastingadam.com/2011/05/advanced_caching_in_rails an – Vik