如何从模块访问Sinatra Session



我正在用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

试试这样:

require 'sinatra/base'
module Sinatra
  module SessionHelper
    def current_user
      session['current_user']
    end
  end
  register current_user
end

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

user = current_user

看一下关于编写Sinatra扩展的文档-它也适用于其他自定义模块。

希望有帮助!

最新更新