ruby - framework - Parámetros obligatorios y opcionales para la ruta Sinatra
sinatra ruby framework (1)
Logré superar esto al completar la expresión regular en la ruta y excluir el "." del primer grupo regex
get %r{/widgets//([^//?#/.]+)(?:/.|%2E)?([^//?#]+)?}
Con las rutas Sinatra, ¿cómo puede haber un parámetro nombrado requerido y un parámetro nombrado opcional en la misma parte de la ruta?
El parámetro de ruta opcional funciona bien aquí
get ''/widgets.?:format?''
Pero trate de combinar un parámetro requerido requerido, y las cosas se rompen.
get ''/widgets/:id.?:format?''
Las solicitudes de /widgets/abc.json pasan el abc.json completo como el parámetro id.
El regex compilado de Sinatra es:
/^//widgets//([^//?#]+)(?:/.|%2E)?([^//?#]+)?$/