当前位置:  开发笔记 > 后端 > 正文

Rails与activerecord共享会话

如何解决《Rails与activerecord共享会话》经验,为你挑选了1个好方法。

我目前正在使用默认cookie作为我的单点登录(SSO),但是一些用户在推送更新后出现了奇怪的错误.我正在考虑转移到活动记录来存储会话,但是想知道我如何告诉rails会话在另一个数据库中?

因此,如果我通过AR在App1DB中存储会话,那么所有其他应用程序如何知道在哪里查找会话?



1> Samuel..:

Rails的肯定支持数据库会话存储.

在config/environment.rb中,取消注释

# config.action_controller.session_store = :active_record_store

检查\ actionpack-2.2.2\lib\action_controller\session\active_record_store.rb显示CGI :: Session :: ActiveRecordStore :: Session继承自ActiveRecord :: Base.

所以在config/environment.rb的最后,你应该可以说

CGI::Session::ActiveRecordStore::Session.establish_connection(
                              :adapter => "mysql",
                              :host => "otherserver",
                              :username => "session_user",
                              :password => "123ABC",
                              :database => "sessions")

要么

CGI::Session::ActiveRecordStore::Session.establish_connection(:sessions)

使用config/database.yml中定义的连接


例如,添加到config/database.yml:

 sessions_development:
   adapter: mysql
   host: otherserver
   username: sessions_user
   password: 123ABC
   database: sessions

添加到config/environment.rb的末尾

 CGI::Session::ActiveRecordStore::Session.establish_connection("sessions_#{RAILS_ENV}")

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有