Rack::Test::Methods 使用get方法时设置id

Rack::Test::Methods setting id when using get method

我正在努力使用 Rack::Test 中的 API 方法。提供资源参数,对于 post 方法有意义,但对于 get 似乎没有意义。 当我想获取具有明确 id 的资源时,我正在尝试发出请求:

get "/resources/#{id}", {Accept: Mime::JSON}

它确实有效,但如果我提供一个 id 作为第二个参数,它就不起作用:

get '/resources', id: id, {Accept: Mime::JSON} 
# or
get '/resources', {id: id}, {Accept: Mime::JSON}
# omits the id - just fetches all the resources

如何将 ID 作为单独的参数提供?将它嵌入字符串中看起来很糟糕。

seconds 参数标识请求的负载。 GET 没有负载,因为在执行 GET 请求时无法发送任何数据。

在 get 请求中,key/value 负载由查询字符串(加上 URI)表示,因此第一种方法是可行的方法。

如果您使用 POSTPUTDELETEPATCH 等不同方法而不是 GET,则第二个参数表示请求的负载。

patch "/resources/#{id}", { foo: "bar" }.to_json, {Accept: Mime::JSON}