我的控制器测试中有以下行:
get brands_url, params: { test: 1, test2: 2}, as: :json
我想测试api请求brands?test=1&test1=2
。
在控制器索引方法中,params对象最终看起来像:
<ActionController::Parameters {"{\"test\":1,\"test2\":2}"=>nil, "controller"=>"brands", "action"=>"index", "format"=>"json", "brand"=>{}} permitted: false>
params散列被转换为json并被解释为键。
如果我删除as: :json
选项,我会得到我认为应该是预期的行为:
<ActionController::Parameters {"test"=>"1", "test2"=>"2", "controller"=>"brands", "action"=>"index"} permitted: false>
有关为何发生这种情况的任何想法?
答案 0 :(得分:0)
brands?test=1?test1=2
不是有效的网址。尝试将第二个?
更改为&
。
brands?test=1&test1=2
答案 1 :(得分:0)
我不是将params传递给params哈希,而是必须将参数传递给url helper brands_url
。以下工作如下:
get brands_url(test: 1, test2: 2), as: :json, xhr: true
根据铁道文件,原始技术应该有效。