我正在使用 Sinatra,我想在我的 url 中使用类似引用代码之类的东西,这将在一定程度上控制访问并识别给定 URL 的出处。
/secret-code/rest/of/path
如果“秘密代码”不在预定列表中,则应拒绝。
我想使用路线条件
set(:valid_tag) { |tag| condition { tag === 'abcd' } }
get '/:tag', :valid_tag => params[:tag] do
'Hello world!'
end
但 params 不在范围内。我需要在区块中调度吗?处理多个路由而不必在每个路由中复制标签检查逻辑的最佳方法是什么?
/secret/route1/
/secret/route1/blah
/secret/route2/
有没有办法链接处理程序?我可不可以做
get /:tag/*
# check :tag
redirect_to_handler(params[:splat])