我有2个rails应用程序(版本4.0和4.1),它们有自己的数据库和另一个数据库的数据库连接器。这两个应用都有一个登录表单,现在我想分享会话。
在两个应用程序中,我添加了activerecord-session_store gem,在config / initializers / seesion_store.rb文件中,我将session_store设置为active_record_store。
如何判断一个应用程序是否使用其他数据库(而不是默认的db-connector)来存储会话?
有没有办法与Cookie分享会话?这两个应用都有不同的网址。
我期待着你的回复。
答案 0 :(得分:1)
您可以使用自己的类覆盖会话存储类,并具有从第二个数据库写入和读取会话的功能。
示例类:
在这里,您可以connection
返回第二个数据库连接。
参考文档:
通过设置
,您可以提供自己的会话类实现,无论是功能丰富的Active Record还是裸机高性能SQL存储。ActionDispatch::Session::ActiveRecordStore.session_class = MySessionClass
您必须实施以下方法:
self.find_by_session_id(session_id)
initialize(hash_of_session_id_and_data, options_hash = {})
attr_reader :session_id
attr_accessor :data
save
destroy
示例SqlBypass类是一个通用的SQL会话存储。您可以将其用作高性能数据库特定商店的基础。