rails 3, heroku, wie man Sitzungen benutzt

8

Ich habe eine großartige Antwort für die Einrichtung von Sitzungen für Schienen 3 gesehen ( Rails-Sitzungen aktuelle Praktiken )

Wir sammeln eine Reihe von Fragen vom Benutzer und ich möchte in der Sitzung eine Liste ihrer Antworten halten, bis wir zum Ende kommen und dann alles aufschreiben ...

aber ich bin mir nicht sicher, wie ich Informationen aus der Sitzung schreiben und lesen soll ... jeder schnelle Zeiger würde sich darüber freuen, wie man zum Beispiel den Inhalt eines Hashes speichert

Ändert auch die Tatsache, dass unsere App auf einem Raster bei Heroku gehostet wird, wie wir mit Sitzungen umgehen können / sollen?

Prost, JP

    
jpwynn 15.02.2011, 02:53
quelle

2 Antworten

18

Sie müssen nichts für Heroku ändern. Standardmäßig werden Rails-Sitzungen in einem verschlüsselten Cookie gespeichert, sodass keine serverseitige Konfiguration erforderlich ist.

Ein Cookie kann jedoch nur 4.096 Datenbytes speichern. Wenn Sie viele Daten in der Sitzung speichern (was normalerweise nicht empfohlen wird), können Sie den Cookie überlaufen lassen. In diesem Fall möchten Sie möglicherweise ActiveRecord- oder Memcached-basierte Cookies einrichten. Beide sind einfach zu machen und sind nicht wirklich Heroku-spezifische Probleme. Wenn Sie Hilfe benötigen, können Sie immer eine andere StackOverflow-Frage stellen. Im Moment ist es nicht beunruhigend, bis Sie das Limit erreicht haben.

Grober Code zum Speichern und Lesen Ihrer Antworten in der Sitzung, vorausgesetzt, Frage und Antwort sind ActiveRecord-Modelle:

%Vor%     
wuputah 15.02.2011, 03:48
quelle
4

Sitzungen in Rails sind sehr einfach zu verwenden, verwenden Sie einfach die Session-Hash-ähnliche Struktur wie folgt:

  • (set) session [: mein_name]="Joe"
  • (lesen) puts session [: mein_name]

Ich kann mir nicht vorstellen, dass Sie irgendetwas für die Bereitstellung auf Heroku ändern müssen.

    
Alistair 15.02.2011 03:39
quelle