使用DataMapper作为Padrino会话存储

时间:2011-04-24 16:04:11

标签: ruby datamapper rack omniauth padrino

我能够让Rack::Session::DataMapper,Padrino和Omniauth一起工作。主要目标是在主应用程序和管理部分中拥有相同的会话和用户,并拥有非常持久的会话。选项set :sessions已停用,因此我将/padrino-core-0.9.23/lib\padrino-core/application.rb:203 use Rack::Flash if flash?修改为不需要sessions?。另外,我修补/padrino-admin-0.9.23/lib/padrino-admin/access_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三次感到不舒服。

1 个答案:

答案 0 :(得分:0)

迟到的答案,但我相信如果你提出:

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

在你的“config / boot.rb”中,你会没事的,也不需要重复。