Rails 5.1 minitest flattens array of arrays in params 参数
Rails 5.1 minitest flattens array of arrays in params
从 Rails 4.2 升级到 5.1 后,似乎仅用于测试,当我提供如下内容时:
post :create, params: {
model: {
prices: [[2000, "EUR"], [2113.56, "USD"]],
estimates: [[50, 2500, "EUR"], [505, 2600, "USD"]]
}
}
然后在控制器的参数中解析为:
prices: [["2000"], ["EUR"], ["2113.56"], ["USD"]]
estimates: [["50"], ["2500"], ["EUR"], ["505"], ["2600"], ["USD"]]
幸运的是,对控制器的实际调用被正确解析。
显然,我需要修复测试,所以非常感谢任何帮助!
找了很久的答案..
我们认为只有:
@request.headers['Accept'] = 'application/json'
在设置中没问题。
但我们还必须包括:
@request.headers['Content-Type'] = 'application/json'
为了正确解析参数!
添加as: :json
选项:
post :create, as: :json, params: {
model: {
prices: [[2000, "EUR"], [2113.56, "USD"]],
estimates: [[50, 2500, "EUR"], [505, 2600, "USD"]]
}
}
从 Rails 4.2 升级到 5.1 后,似乎仅用于测试,当我提供如下内容时:
post :create, params: {
model: {
prices: [[2000, "EUR"], [2113.56, "USD"]],
estimates: [[50, 2500, "EUR"], [505, 2600, "USD"]]
}
}
然后在控制器的参数中解析为:
prices: [["2000"], ["EUR"], ["2113.56"], ["USD"]]
estimates: [["50"], ["2500"], ["EUR"], ["505"], ["2600"], ["USD"]]
幸运的是,对控制器的实际调用被正确解析。 显然,我需要修复测试,所以非常感谢任何帮助!
找了很久的答案..
我们认为只有:
@request.headers['Accept'] = 'application/json'
在设置中没问题。
但我们还必须包括:
@request.headers['Content-Type'] = 'application/json'
为了正确解析参数!
添加as: :json
选项:
post :create, as: :json, params: {
model: {
prices: [[2000, "EUR"], [2113.56, "USD"]],
estimates: [[50, 2500, "EUR"], [505, 2600, "USD"]]
}
}