Ich habe ein Problem mit Sitzungen in Schienen 3.2, wenn ich Mongoid als SessionStore verwende. Ich entschied mich dafür, Brian Hempel's Gabel von mongo_session_store
gem, wie es im letzten Monat aktualisiert wurde.Mit mongo_session_store-rails3 scheint Sitzung nicht zu funktionieren
Bevor ich zu diesem Juwel wechselte, benutzte ich den standardmäßigen Cookie-basierten Sitzungsspeicher, und es funktionierte ohne Probleme. Aber jetzt, sogar flash
funktioniert nicht, wenn ich auf eine andere Seite umleiten. Sitzungsdaten werden anscheinend bei jeder einzelnen Anforderung zurückgesetzt.
Und als eine Nebenfrage: jede Anfrage erstellt ein neues Sitzungsdokument in db! Ist es richtig? Ich bin verwirrt. = (
Ich habe diese Zeilen in meinem Gemfile:
gem 'mongoid', :git => 'git://github.com/mongoid/mongoid.git'
gem 'bson_ext', "~> 1.5"
gem 'mongo_session_store-rails3', '~> 3.0.5'
Da ist in meinem config/initializers/session_store.rb
:
SomeAppName::Application.config.session_store :mongoid_store
sessions_controller.rb:
class SessionsController < ApplicationController
def new
...
end
def create
user = User.find_by_identifier(params[:identifier])
if user && user.authenticate(params[:password])
session[:uid] = user._id
redirect_to root_url, :notice => "Logged in!"
else
flash.now.alert = "Invalid email or password"
render :new
end
end
def destroy
...
end
end
Wenn jeder anderen Teil von meinem Code ist erforderlich, bitte sagen Sie mir, es zu posten im Voraus.
Haben Sie Ihre Datenbank überprüfen, ob ein Sitzungsdokument sicher ist oder nicht? – shingara
Ja. Wie gesagt, die "Sessions" -Sammlung ist da und für jede Anfrage wird ein neues 'Session'-Dokument erstellt. –