【问题标题】:Using Rack::Session::Datamapper使用 Rack::Session::Datamapper
【发布时间】:2010-12-07 18:04:58
【问题描述】:

mkristgan 的 rack_datamapper gem 说它“可以被包装以在特定环境中使用,即 Rack::Session::Datamapper”。

不幸的是,我对 Ruby 的了解还不足以完成这项任务——Ruby 中的模块/类仍然在我的脑海中(来自 PHP)。

谁能提供使用 rack_datamapper 来实现 Rack::Session::Datamapper 的帮助?

你可能不想这样做。

下面的答案很好,但仔细考虑后,我意识到无论如何我都不应该这样做。相反,我将 user_id、ip 和名字(为方便起见)放在 cookie 中并对其进行保护。

【问题讨论】:

    标签: ruby session sinatra datamapper rack


    【解决方案1】:

    This gem 应该有帮助:

    在 Sinatra 中只需添加:

    use Rack::Session::Moneta,
       store: Moneta.new(:DataMapper, setup: (ENV['DATABASE_URL'] || "sqlite://#{Dir.pwd}/development.db"))
    

    并随意使用session[] 对象。

    【讨论】:

    • 谢谢,但我意识到我应该将 user_id 和名字放入签名的 cookie 中。
    • 是的,这很好,直到有人试图检测其他人的 user_id 并获取其他会话。当心!
    猜你喜欢
    • 2012-11-14
    • 2010-10-31
    • 2013-08-05
    • 2011-03-21
    • 2013-10-12
    • 2013-09-06
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    相关资源
    最近更新 更多