我正在尝试从sinatra教程中创建此代码片段,以便我可以根据正则表达式匹配设置一些路由。它似乎没有工作,我直接从教程复制粘贴,任何关于我缺少的想法。假设我的sinatra应用程序正在工作,我有其他正确结构的GET路由工作,所以我不清楚为什么这样的直接复制不起作用。
get %r{/hello/([\w]+)} do
"Hello, #{params[:captures].first}!"
end
应该正确映射http://0.0.0.0:4567/hello
的路由,但是路由到'sinatra不知道这个小曲'错误消息。
THKS。
答案 0 :(得分:2)
%r{/hello/([\w]+)}
根本不匹配/hello
。你的正则表达式需要一个斜杠和另一个字符串,但你的路径不包含它。
该路线符合/hello/there
但不符合/hello
甚至/hello/
。
鉴于您正在查看捕获,您可能根本不希望这与/hello
一起使用,因为捕获将是nil
并且谁想要问nil
1}}?