2011-04-24 46 views
1

我能夠使Rack::Session::DataMapper,Padrino和Omniauth一起工作。主要目標是在主應用程序和管理部分中擁有相同的會話和用戶,並且擁有非常持久的會話。選項set :sessions已被禁用,因此我修補/padrino-core-0.9.23/lib\padrino-core/application.rb:203use Rack::Flash if flash?不需要sessions?。我還修補/padrino-admin-0.9.23/lib/padrino-admin/access_control.rb:15以禁用會話。使用DataMapper作爲Padrino會話存儲

這裏是我的應用程序代碼:

/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 

問題是:有沒有更好的方法來befrien使用Omniauth定製機架會話存儲?我不習慣使用Rack::Session::DataMapper三次。

回答

0

晚的答案,但我相信,如果你把:

Padrino.before_load do 
    Padrino.use Rack::Session::DataMapper 
end 
在你的「配置/的boot.rb」你會沒事的,不會重複需要

+0

不,不起作用。裏面沒有這種方法。 – ujifgc 2012-02-29 08:45:34

+0

@ujifgc對不起,應該是「Padrino.use」,而不僅僅是「使用」。編輯我的答案。試一試。 – Foot 2012-02-29 17:19:02