【发布时间】:2014-01-16 18:42:27
【问题描述】:
我有一个 API 调用,我需要在其中发布一组 ID。我知道,如果我将几个名为 ids[] 的参数传递给我的请求,它们将在控制器的 params 哈希中显示为一个数组:
# POST /api/events
# params:
# ids[] = 1
# ids[] = 2
# ids[] = 3
# Then in Api::EventsController:
puts params # => { ids: [ "1", "2", "3"] }
但是我该如何测试呢?我不能在我的 RSpec 测试中两次使用相同的参数名称:
post "/api/events", :"ids[]" => 1, :"ids[]" => 2, :"ids[]" => 3
因为真正的意思是:
post "/api/events", {:"ids[]" => 1, :"ids[]" => 2, :"ids[]" => 3}
... 并且哈希不能有两次相同的键,所以第二个参数被简化为 {:"ids[]" => 3}。
像:"ids[]" => "1,2,3" 这样的东西不起作用,它只会导致ids: ["1,2,3"]。
我应该将什么传递给post 方法以在我的控制器的params 哈希中获取一个数组?
【问题讨论】:
标签: ruby-on-rails ruby testing rspec params