【问题标题】:How to access Sinatra Session from a module如何从模块访问 Sinatra Session
【发布时间】:2011-12-13 14:41:35
【问题描述】:

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

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

【问题讨论】:

    标签: session sinatra ruby-1.9


    【解决方案1】:

    试试这样的:

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

    希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      相关资源
      最近更新 更多