gpt4 book ai didi

ruby-on-rails - Rails 与 activerecord 共享 session

转载 作者:行者123 更新时间:2023-12-04 03:36:57 25 4
gpt4 key购买 nike

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

因此,如果我通过 AR 在 App1DB 中存储 session ,所有其他应用程序如何知道在何处查找 session ?

最佳答案

Rails 肯定 支持数据库 session 存储。

在 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}")

关于ruby-on-rails - Rails 与 activerecord 共享 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/378376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com