2010-09-15 3 views
3

Я проникаю существующее приложение с Rails 2 в Rails 3. В старом файле среда, SqlSessionStore был создан с:SqlSessionStore в Rails 3

ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS.update(:database_manager => SqlSessionStore) 
SqlSessionStore.session_class = MysqlSession 

При попытке запуска моего приложения в Rails 3, я «м сказал:

DEPRECATION WARNING: config.action_controller.session= has been deprecated. Please use config.session_store(name, options) instead. (called from config/application.rb:35) 
/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2503:in `const_missing': uninitialized constant ActionController::CgiRequest (NameError) 

есть простой способ перевести эту концепцию к Rails 3, или мне нужно пересмотреть, как сессии обрабатываются?

ответ

3

Вы хотите что-то подобное в application.rb

module MyApp 
    class Application < Rails::Application 
    config.session_store :active_record_store 

Смотрите документацию и вопросы здесь: http://apidock.com/rails/ActiveRecord/SessionStore

+0

Я принял взглянуть на ActiveRecordStore, но я читал, что он имеет производительность и поэтому это приложение использовало [SqlSessionStore] (http://railsexpress.de/blog/articles/2005/12/19/roll-your-own-sql-session-store/). Улучшены ли эти проблемы производительности в Rails 3, или есть способ использовать SqlSessionStore с новыми Rails? – jrdioko

+2

ActiveRecordStore должен работать на любом, но самом большом из сайтов. Если вы столкнулись с проблемами производительности, вы должны использовать memcached для своих сеансов. Не оптимизируйте ранние сеансы, скорее всего, это незначительная часть вашей скорости запроса. Тем не менее - нет, я не могу найти упоминания о sqlsessionstore для rails3. Возможно, они только что испекли это, но я понятия не имею. – Kevin