usar params con slashes en sinatra
Iniciado por
Fran34
, may 11 2015 15:08
Solución elegida por el autor
Iniciado por
Joel7
, 11 mayo 2015 - 20: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
Ver solución completa
Pulsa corazón para recibir avisos de nuevas Respuestas
Fran34
AUTOR PREGUNTA
#1
Publicado 11 mayo 2015 - 15: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?
Preguntado por
Fran34
Cuenta Std
19
Esto también te interesa!
Joel7
#2
Publicado
11 mayo 2015 - 20: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
Fran34
AUTOR PREGUNTA
#3
Publicado 11 mayo 2015 - 20: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
Respuesta de
Fran34
Cuenta Std
19
Joel7
#4
Publicado 11 mayo 2015 - 20:50
Excelente, que bueno que te sirvio
Felipe35
#5
Publicado
11 mayo 2015 - 20:52
En la linea donde capturas la URL puedes tambien hacer lo siguiente:
url = request.fullpath[5..-1]