我需要模拟在测试中发送参数,就像这些输入发送一样:
<input id="quantity" name="quantities[9671]" type="number" value="1" />
<input id="quantity" name="quantities[9822]" type="number" value="1" />
测试看起来像这样:(使用测试单元,Rails中的默认测试框架):
test "placing item into basket"
cart = Cart.new(session)
post :create,
product_variant_ids: [@product.variants.first.id],
"quantities[#{@product.variants.first.id}]" => 1 # <<<------ not working
assert_equal 1, cart.items.count
end
答案 0 :(得分:1)
如果您将输入参数指定为:
"quantities[123]" => 1
您必须稍后在控制器上使用以下方式访问它:
params["quantities[123]"]
通常输入如下:
<input id="quantity" name="quantities[9671]" type="number" value="1" />
将作为嵌套哈希在您的参数中提供。对于上述情况,它将是:
params["quantities"]["9671"]
所以在你的情况下,如果你像这样传递它应该有效:
quantities: {@product.variants.first.id => 1}