我一直在 Sinatra 中按照文档中声明的方式使用过滤器:没有匹配字符串、匹配字符串或匹配正则表达式。到目前为止,它一直运行良好。现在,我有一个特定的用例。假设我有这条路线:
/resources/1
根据 REST,根据请求方法,这可以是 GET 方法、PUT 方法或 DELETE 方法。第一个问题是:如何编写仅在 GET 请求时调用的过滤器?(目前我让所有这些都被过滤,然后我才测试该方法。它有效,但我不喜欢它)。第二个问题,更重要的是:假设触发了这样的 PUT 请求:
/resources/
这当然是错误的,因为 PUT 请求没有关联的资源 id。我想知道 Sinatra 中是否有一些东西可以让我做这样的事情:
before "/resources/", :method => :put do
error_message
end
只是这种可能性不存在(之前只接受一个论点)。我怎样才能达到这个结果呢?