Letztens habe ich in mein FireStation-Projekt caching eingebaut. Was ist mir dann passiert: die Stickies wurden fehlerhaft gecachet und man sah Sie ohne eigentlich der passende User zu sein. Wie kriegen wir das weg?

Direkt ist dies wohl nicht vorgesehen (wer denkt schon daran?).

Da die Stickies an Hand der Session erkannt werden, so können wir diese auch passend auslesen lassen mit der Methode render_stickies.

Der kleine Trick:

  1. Erstellung eines StickiesController
  2. Schreiben der Methode: mystickies

    def mystickies
    respond_to do |wants|
    wants.js {render :layout => false } # nur mittels Ajax lesbar
    end
    end

  3. Erstellen des Views mystickies.rhtml

    <%= render_stickies %>

  4. Einbindung in das Layout

    <div id=”stickies”>
    <%= javascript_tag “Event.observe(window, ‘load’, function() {new Ajax.Updater(’stickies’, ‘/stickies/mystickies’, {asynchronous:true, evalScripts:true}); });” %>
    </div>

  5. Freuen

Soooo einfach geht das!
Etwas ajax, etwas refactoring und alles läuft wie am Schnürchen ;)

convert this post to pdf.