Sinatra 可选参数运算符和语法。什么是正确的语法?
Sinatra optional parameter operator and syntax. What is the right syntax?
get '/foo/?bar'
"Hi"
end
请问网址:
www.yahoo.com/foo/about/blog
www.theatlantic.com/foo/about
走那条路? ?
运算符在这里工作吗?或者我需要两个 ?
标记吗?我正在阅读 Sinatra Up and Running,它似乎没有列出此内容。好像很重要。
您可以提供一个普通的正则表达式来匹配路由。例如,一个非常允许的 "foo" 路由接受具有 word sub-string "foo" 的每个路由:
get /foo/ do
'From ANY path that includes the word foo!'
end
这将匹配:
/foo
/foobar
/bar/another_foo/something_else
正确的语法是:
get '/foo/?:bar?' do
"Hi"
end
第一个问号使前面的 /
可选,第二个问号使前面的符号 :bar
可选,因此:
/foo/about
- 是的
/foo/about/blog
- 没有
/foo
- 是的
/foo/
- 是
否则你只能将 :bar
符号设为可选
get '/foo/:bar?' do
"Hi"
end
这样:
/foo/about
- 是的
/foo/about/blog
- 没有
/foo
- 没有
/foo/
- 是
再举一个例子,这个选项:
get '/go/?:bar' do
"wow"
end
实际上等同于:
get '/go/:bar' do
"wow"
end
get '/foo/?bar'
"Hi"
end
请问网址:
www.yahoo.com/foo/about/blog
www.theatlantic.com/foo/about
走那条路? ?
运算符在这里工作吗?或者我需要两个 ?
标记吗?我正在阅读 Sinatra Up and Running,它似乎没有列出此内容。好像很重要。
您可以提供一个普通的正则表达式来匹配路由。例如,一个非常允许的 "foo" 路由接受具有 word sub-string "foo" 的每个路由:
get /foo/ do
'From ANY path that includes the word foo!'
end
这将匹配:
/foo
/foobar
/bar/another_foo/something_else
正确的语法是:
get '/foo/?:bar?' do
"Hi"
end
第一个问号使前面的 /
可选,第二个问号使前面的符号 :bar
可选,因此:
/foo/about
- 是的
/foo/about/blog
- 没有
/foo
- 是的
/foo/
- 是
否则你只能将 :bar
符号设为可选
get '/foo/:bar?' do
"Hi"
end
这样:
/foo/about
- 是的
/foo/about/blog
- 没有
/foo
- 没有
/foo/
- 是
再举一个例子,这个选项:
get '/go/?:bar' do
"wow"
end
实际上等同于:
get '/go/:bar' do
"wow"
end