GMA*_*GMA 1 ruby testing rspec ruby-on-rails params
我有一个API调用,我需要POST一组ID.我知道如果我通过调用ids[]我的请求的几个参数,它们将params在控制器的哈希中显示为数组:
# POST /api/events
# params:
# ids[] = 1
# ids[] = 2
# ids[] = 3
# Then in Api::EventsController:
puts params # => { ids: [ "1", "2", "3"] }
Run Code Online (Sandbox Code Playgroud)
但是我怎么测试呢?在我的RSpec测试中,我不能两次使用相同的参数名称:
post "/api/events", :"ids[]" => 1, :"ids[]" => 2, :"ids[]" => 3
Run Code Online (Sandbox Code Playgroud)
因为这真正意味着:
post "/api/events", {:"ids[]" => 1, :"ids[]" => 2, :"ids[]" => 3}
Run Code Online (Sandbox Code Playgroud)
...和哈希不能有两次相同的键,所以第二个参数减少到只{:"ids[]" => 3}.
类似的东西:"ids[]" => "1,2,3"不起作用,它只是导致ids: ["1,2,3"].
我应该传递给post方法以在params控制器的哈希中获取数组?
*Facepalm*
我不知道为什么我没有发生这种情况,但您可以将数组作为其中一个哈希值传递:
post "/api/events", :ids => [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
我猜我的URL语法有点过于字面意思.
希望这个答案将为未来的Google员工节省30秒.
| 归档时间: |
|
| 查看次数: |
2284 次 |
| 最近记录: |