我有一个Ruby Sinatra应用程序,我有一些代码,我需要在所有路由上执行,除了一些例外.我该怎么做呢?
如果我想在选定的路由上执行代码(白名单样式),我会这样做:
['/join', "/join/*", "/payment/*"].each do |path|
before path do
#some code
end
end
Run Code Online (Sandbox Code Playgroud)
我怎么做反过来(黑名单风格)呢?我想,除了匹配所有路由'/join','/join/*'并'/payment/*'
Kon*_*ase 38
负面预测:
before /^(?!\/(join|payment))/ do
# ...
end
Run Code Online (Sandbox Code Playgroud)
用pass:
before do
pass if %w[join payment].include? request.path_info.split('/')[1]
# ...
end
Run Code Online (Sandbox Code Playgroud)
或者您可以创建自定义匹配器.
| 归档时间: |
|
| 查看次数: |
22537 次 |
| 最近记录: |