¿Dónde pongo el código en Sinatra (ruby web framework) que solo quiero ejecutar una vez?
Pregunta
No sé si esta es una pregunta de rubí o una pregunta de Sinatra, porque soy nuevo en ambas. El siguiente código no funciona, y entiendo por qué, porque la primera variable my_variable es local en su bloque. Simplemente no sé la sintaxis para hacerlo bien.
require 'rubygems'
require 'sinatra'
configure do
my_variable = "world"
end
get '/' do
"Hello " + my_variable
end
EDIT1: lo siguiente funciona, pero supongo que estoy confundido sobre el propósito correcto del bloque de configuración.
require 'rubygems'
require 'sinatra'
my_variable = "world"
get '/' do
"Hello " + my_variable
end
Solución
require 'rubygems'
require 'sinatra'
set :my_variable, "world"
get '/' do
"Hello " + settings.my_variable
end
Otros consejos
Configurar bloque es solo para la configuración de la aplicación relacionada. Si eso es lo que es, debe encapsularlo correctamente:
require 'sinatra'
configure do
set :my_option, "world"
end
get '/' do
"Hello #{options.my_option}"
end
Otra forma es:
require 'rubygems'
require 'sinatra'
@my_variable="world"
get '/' do
"Hello " + @my_variable
end
Establecería una variable de clase, por ejemplo. @@ my_variable
: dentro del bloque de configuración. El bloque de configuración existe para el código que desea ejecutar al inicio, por lo que establecer su variable tiene sentido. Su aplicación Sinatra es una subclase de Sinatra :: Base
, por lo que parece apropiado utilizar una variable de clase en esta situación.