Как получить доступ к Sinatra Session из модуля - PullRequest
1 голос
/ 13 декабря 2011

Я занимаюсь разработкой приложения на 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 Ответ

2 голосов
/ 17 декабря 2011

попробуйте что-то вроде этого:

require 'sinatra/base'

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

Тогда где-нибудь в своих контроллерах вы можете сделать это:

user = current_user

Посмотрите документацию по написанию расширений Sinatra - это применимо и к другим пользовательским модулям.

Надеюсь, это поможет!

...