2013-02-06 16 views
11

Wenn ActiveRecord :: Store veraltet ist, was ist die empfohlene Methode zum Verwalten einer Sitzung? Ist verschlüsselter Cookie den neuen Standard gespeichert? Was, wenn Sie einen Zustand von> 4kb beibehalten möchten?Sitzungen in Rails 4

Antwort

0

Achten Sie auf die Datei mit dem Namen session_store.rb in Ihrem Ordner config/initializers. Dort sollten Sie festlegen, welche Art von Sitzung Sie verwenden möchten. Ein Standard, Cookies in Ihrem Browser ein, sollte wie:

ProjectName::Application.config.session_store :cookie_store, key: '_project_name_session' 

Danach alles, was Sie tun müssen, den Hash-session aus Ihrem Controller ist anrufen. Sie können dort einen beliebigen Wert festlegen, der zwischen den Anforderungen bestehen bleibt.

Wie in Rails Guides:

config.session_store ist in der Regel in config/initializers/session_store.rb eingerichtet und gibt an, welche Klasse zu verwenden, um die Sitzung zu speichern. Mögliche Werte sind: cookie_store (Standard), mem_cache_store und: deaktiviert. Der letzte Befehl weist Rails an, sich nicht mit Sitzungen zu befassen. Benutzerdefinierte Sitzungsspeicher können auch angegeben werden (...)

+1

Ich bin neugierig, warum: active_record_store wird veraltet und was ist die beste Alternative, wenn ich den Zustand auf dem Server und nicht den Client beibehalten möchte. – Michael

+0

Ich denke active_record store ist nicht veraltet, es ist nur "gemmifiziert", um die Modularität der Schienen zu erhöhen. –

6

In Rails 4, umfassen gem 'activerecord-session_store' in Ihrem Gemfile und führen Bündel installieren. Vervollständigen Sie die Migration und Konfiguration gemäß https://github.com/rails/activerecord-session_store Hinweise.

Die andere Alternative verwendet das 'Dalli'-Juwel für die Sitzungsverwaltung.