如何从模块访问Sinatra Session

时间:2011-12-13 14:41:36

标签: session sinatra ruby-1.9

我正在使用Ruby 1.9.2和Sinatra 1.3开发应用程序。 我有一个需要访问会话数据的辅助模块。 这是我模块的片段

require 'sinatra'

module SessionHelper

  def current_user
    session['current_user']
  end

end

这适用于ruby 1.8.7,但是当我使用Ruby 1.9.2运行应用程序时,我收到一条错误消息:undefined local variable or method 'session' for SessionHelper:Module

1 个答案:

答案 0 :(得分:2)

尝试这样的事情:

require 'sinatra/base'

module Sinatra
  module SessionHelper
    def current_user
      session['current_user']
    end
  end
  register current_user
end

然后在你的控制器某处,你可以这样做:

user = current_user

查看writing Sinatra extensions上的文档 - 它也适用于其他自定义模块。

希望有所帮助!