Cargando

Ir a contenido

X

usar params con slashes en sinatra





Solución elegida por el autor
Iniciado por Joel7 , 11 mayo 2015 - 19:49

Has intentado con los parametros splat? La sintaxis es parecida a la siguiente:

get '/add/*' do
 protocol = params[:splat].first
 address = params[:splat][1..-1].join('/')

 url = protocol + "//" + address
end



  AUTOR PREGUNTA

Publicado 11 mayo 2015 - 14:08

Estoy jugando un poco con Sinatra y revisando los tutoriales aca pero me he encontrado con un pequeño problema y es cuando uso params con slashes confundo al motor de enrutamiento. Les dejo una porcion del codigo:

get 'add/:url' do
  #....
end

Existe una forma de manejar este tipo de problemas sin tener que encodearlo?

 

  • ¿Tienes la misma pregunta? Yo también
  • Volver arriba


 

Publicado 11 mayo 2015 - 19:49

Has intentado con los parametros splat? La sintaxis es parecida a la siguiente:

get '/add/*' do
 protocol = params[:splat].first
 address = params[:splat][1..-1].join('/')

 url = protocol + "//" + address
end


   AUTOR PREGUNTA

Publicado 11 mayo 2015 - 19:50

Gracias! Funciona perfecto, incluso consegui hacerlo de una manera mucha mas corta y con expresiones regulares:

get %r{/add/(.+)} do
 url = params[:captures]
end


 

Publicado 11 mayo 2015 - 19:50

Excelente, que bueno que te sirvio ;)



 

Publicado 11 mayo 2015 - 19:52

En la linea donde capturas la URL puedes tambien hacer lo siguiente:

url = request.fullpath[5..-1]



X