Rob*_*obH 6 session activerecord ruby-on-rails
我目前正在使用默认cookie作为我的单点登录(SSO),但是一些用户在推送更新后出现了奇怪的错误.我正在考虑转移到活动记录来存储会话,但是想知道我如何告诉rails会话在另一个数据库中?
因此,如果我通过AR在App1DB中存储会话,那么所有其他应用程序如何知道在哪里查找会话?
Rails的肯定不支持数据库会话存储.
在config/environment.rb中,取消注释
# config.action_controller.session_store = :active_record_store
Run Code Online (Sandbox Code Playgroud)
检查\ 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")
Run Code Online (Sandbox Code Playgroud)
要么
CGI::Session::ActiveRecordStore::Session.establish_connection(:sessions)
Run Code Online (Sandbox Code Playgroud)
使用config/database.yml中定义的连接
例如,添加到config/database.yml:
sessions_development:
adapter: mysql
host: otherserver
username: sessions_user
password: 123ABC
database: sessions
Run Code Online (Sandbox Code Playgroud)
添加到config/environment.rb的末尾
CGI::Session::ActiveRecordStore::Session.establish_connection("sessions_#{RAILS_ENV}")
Run Code Online (Sandbox Code Playgroud)