Rack :: Test ::使用get方法设置id的方法

时间:2016-01-23 19:38:07

标签: ruby-on-rails ruby rack-test

我正在努力使用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作为单独的参数提供?将它嵌入字符串看起来很糟糕。

1 个答案:

答案 0 :(得分:1)

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

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

如果您使用GETPOSTPUTDELETE等其他方法代替PATCH,则第二个参数代表有效负载请求。

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