Saber si un template existe en Sinatra



   AUTOR PREGUNTA

Publicado 12 mayo 2015 - 15:37

Tengo la siguiente ruta en mi aplicacion con Sinatra:

get '/portfolio/:item' do
 haml params[:item].to_sym
end

Esto funciona de maravilla si la plantilla existe pero en el caso que no recibo el siguiente error:

Errno::ENOENT at /portfolio/notemplate 
No such file or directory - /.../views/notemplate.haml

Hay alguna forma de verificar si la plantilla existe y en el caso que no atrapar la excepcion? Gracias de antemano.

 



¿Tienes la misma pregunta? Yo también

 

Publicado 12 mayo 2015 - 21:26

No estoy muy seguro de la manera de hacerlo en Sinatra pero la excepcion ENOENT siempre la atrapo de la siguiente forma:

get '/portfolio/:item' do
 begin
   haml params[:item].to_sym
 rescue Errno::ENOENT
   haml :default
 end 
end

Espero te sea de ayuda


   AUTOR PREGUNTA

Publicado 12 mayo 2015 - 21:27

No me funciona, me da el siguiente error :/

app.rb:47: syntax error, unexpected tSYMBEG, expecting kDO or '{' or '(' rescue Errno:ENOENT

Alguna idea?


   AUTOR PREGUNTA

Publicado 12 mayo 2015 - 21:27

Ya lo solucione, con la siguiente modificación en mi codigo lo pude lograr:

haml params[:item].to_sym rescue pass