2011-12-13 52 views
1

我开发使用Ruby 1.9.2和1.3西纳特拉的应用程序访问西纳特拉会议。 我有一个需要访问会话数据的助手模块。 这里是我的模块的片段如何从一个模块

require 'sinatra' 

module SessionHelper 

    def current_user 
    session['current_user'] 
    end 

end 

这正常工作与红宝石1.8.7,但是当我运行在Ruby 1.9.2应用程序,我得到一个错误说:undefined local variable or method 'session' for SessionHelper:Module

回答

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的文档 - 它也适用于其他自定义模块。

希望有帮助!

相关问题