2010-04-02 13 views
8

Así que tiene un servidor web que he construido usando Sinatra, la carne de la cual dice así:Erb con Sinatra en rubí

set :variable,"value" 
get '/' do 
    erb :index 
end 

Y, por supuesto, la plantilla en views/index.erb que se ve algo como esto:

<html> 
<!-- etc --> 
    <ul> 
    <% my_array.each do |thing| %> 
    <%="Something: #{thing}, variable from sinatra: #{settings.variable}"%> 
    <% end %> 
    </ul> 
</html> 

Si intenta ejecutar código como este se dará cuenta de que no se puede acceder a la configuración de la variable de Sinatra desde el interior de las plantillas erb. ¿Alguna idea de cómo puedo lograr esto manteniendo su simplicidad?

¡Gracias de antemano!

+0

Hice esta pregunta para haml, tal vez la respuesta te ayudará en erb: http://stackoverflow.com/questions/2129387/how-do-i-get-an-array-of-check-boxes- in-haml – mmr

+0

Supongo que esas configuraciones están disponibles en el controlador? Si quieres que estén disponibles en la vista tendrías que pasarlos. –

+1

Mi respuesta fue incorrecta. El método de configuración debe estar disponible desde la vista. El código que publicaste funciona bien para mí. – mckeed

Respuesta

2

que estaba usando una versión antigua de Sinatra - actualizado a la versión 1.0 y funciona bien :)

Gracias a todos!

0

Tuve un problema similar y la resolución fue asegurarme de que todas las cosas set :x, "y" sucedieron en la declaración de clase (de mi subclase de Sinatra::Base) fuera del método de inicialización.