У меня проблема с сессиями в rails 3.2, когда я использую mongoid в качестве SessionStore.Я решил использовать Brian Hempel gem mongo_session_store
gem, так как он был обновлен в прошлом месяце.
Перед переключением на этот гем я использовал хранилище сеансов по умолчанию на основе файлов cookie иэто работало без проблем.Но теперь даже flash
не работает, когда я перенаправляю на другую страницу.Кажется, данные сеанса сбрасываются при каждом отдельном запросе.
И как дополнительный вопрос: каждый запрос создает новый документ сеанса в базе данных!Это правильно?Я не совсем понимаю.= (
Я помещаю эти строки в мой Gemfile:
gem 'mongoid', :git => 'git://github.com/mongoid/mongoid.git'
gem 'bson_ext', "~> 1.5"
gem 'mongo_session_store-rails3', '~> 3.0.5'
Затем в моем config/initializers/session_store.rb
:
SomeAppName::Application.config.session_store :mongoid_store
session_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
Если нужна какая-либо другая часть моего кода, пожалуйста, сообщите мне об этом. Заранее спасибо.