1

我正在尝试使 sinatra 教程中的这段代码片段起作用,以便我可以根据正则表达式匹配设置一些路由。它似乎不起作用,我直接从教程中复制粘贴,关于我所缺少的任何想法。假设我的 sinatra 应用程序正在运行,并且我还有其他结构正确的 GET 路由正在运行,所以我不清楚为什么像这样的直接复制过去不起作用。

get %r{/hello/([\w]+)} do
    "Hello, #{params[:captures].first}!"
end

应该更正映射路线,http://0.0.0.0:4567/hello但正在路由到“sinatra 不知道这个小曲”错误消息。

谢谢。

4

1 回答 1

2

%r{/hello/([\w]+)}根本不匹配/hello。您的正则表达式需要一个斜杠和另一个字符串,但您的路径不包括它。

那条路线将匹配/hello/there但不匹配,/hello甚至不匹配/hello/

鉴于您正在查看捕获,您可能甚至根本不希望使用它/hello,因为该捕获将是nil并且谁想和谁打个招呼nil

于 2012-09-11T18:38:10.347 回答