Onde posso colocar o código em Sinatra (framework web Ruby) que eu só quero executar uma vez?
Pergunta
Eu não sei se esta é uma pergunta rubi ou uma pergunta Sinatra, porque eu sou novo para ambos. O código a seguir não funciona, e eu entendo por que, porque a primeira my_variable é local para seu bloco. Eu só não sei a sintaxe para fazê-lo direito.
require 'rubygems'
require 'sinatra'
configure do
my_variable = "world"
end
get '/' do
"Hello " + my_variable
end
EDIT1 -. As seguintes obras, mas então eu acho que estou confuso sobre o objetivo adequado do bloco configure
require 'rubygems'
require 'sinatra'
my_variable = "world"
get '/' do
"Hello " + my_variable
end
Solução
require 'rubygems'
require 'sinatra'
set :my_variable, "world"
get '/' do
"Hello " + settings.my_variable
end
Outras dicas
Configurar o bloco é apenas para aplicativo de configuração relacionados. Se isso é o que é, você deve compactá-lo adequado:
require 'sinatra'
configure do
set :my_option, "world"
end
get '/' do
"Hello #{options.my_option}"
end
Uma outra maneira é:
require 'rubygems'
require 'sinatra'
@my_variable="world"
get '/' do
"Hello " + @my_variable
end
Gostaria de definir uma variável de classe - por exemplo. @@my_variable
- dentro do bloco configure. O bloco configure existe para o código que você deseja executar no arranque, assim, definir a variável de seu sentido marcas. Sua aplicação Sinatra é uma subclasse de Sinatra::Base
, portanto, usando uma variável de classe nesta situação parece apropriada.