В Sinatra я не могу создать глобальные переменные, которым присваиваются значения только один раз в жизни приложения. Я что-то упускаю? Мой упрощенный код выглядит следующим образом:
require 'rubygems' if RUBY_VERSION < "1.9"
require 'sinatra/base'
class WebApp < Sinatra::Base
@a = 1
before do
@b = 2
end
get '/' do
puts @a, @b
"#{@a}, #{@b}"
end
end
WebApp.run!
В результате получается
nil
2
в терминале и ,2
в браузере.
Если я попытаюсь поместить @a = 1
в метод initialize
, я получаю сообщение об ошибке в строке WebApp.run!
.
Я чувствую, что у меня что-то не хватает, потому что, если у меня не могут быть глобальные переменные, то как я могу загружать большие данные во время создания приложения?
before do
Кажется, вызывается каждый раз, когда есть запрос с клиентской стороны.