Ruby 使用DataMapper作为Padrino会话存储

Ruby 使用DataMapper作为Padrino会话存储,ruby,datamapper,rack,omniauth,padrino,Ruby,Datamapper,Rack,Omniauth,Padrino,我能让帕德里诺和奥米纳特一起工作。主要目标是在主应用程序和管理部分拥有相同的会话和用户,并拥有非常持久的会话。选项set:sessions被禁用,所以我打了补丁/padrino-core-0.9.23/lib\padrino-core/application.rb:203如果Flash?使用Rack::Flash不需要sessions?。此外,我还修补了/padrino-admin-0.9.23/lib/padrino-admin/access\u-control.rb:15以不启用会话 以下是

我能让帕德里诺和奥米纳特一起工作。主要目标是在主应用程序和管理部分拥有相同的会话和用户,并拥有非常持久的会话。选项
set:sessions
被禁用,所以我打了补丁
/padrino-core-0.9.23/lib\padrino-core/application.rb:203
如果Flash?
使用Rack::Flash不需要
sessions?
。此外,我还修补了
/padrino-admin-0.9.23/lib/padrino-admin/access\u-control.rb:15
以不启用会话

以下是我的应用程序代码:

/admin/app.rb:

set :session_id, 'superapp.pro'.to_sym
use Rack::Session::DataMapper
/app/app.rb:

set :session_id, 'superapp.pro'.to_sym
use Rack::Session::DataMapper
/lib/omniauth_init.rb:

use Rack::Session::DataMapper

问题是:有没有更好的方式与Omniauth成为定制机架会话存储区的朋友?我不习惯三次使用
Rack::Session::DataMapper

延迟回答,但我相信如果您:

Padrino.before_load do
    Padrino.use Rack::Session::DataMapper
end

在您的“config/boot.rb”中,您会很好,并且不需要重复。

@ujifgc对不起,应该是“Padrino.use”,而不仅仅是“use”。编辑了我的答案。试试看。