我真的想使用a_collection_containing_exactly匹配器,但在参数中使用数组而不是直接写入值,比如
contract_ids_subset = order_summaries_subset.map {| c | c.contract_id.to_i} .compact
允许(Shipping :: Owner :: Api :: Helper)。接收(:order_summaries_by_contract_ids_and_delivery_date).with( 的 a_collection_containing_exactly(contract_ids_subset)下, 邮寄日期) { order_summaries_subset }
(假设contract_ids_subset = [11111,22222,99999])
如果我硬编码,这项工作 a_collection_containing_exactly(11111,22222,99999)
但是我无法弄清楚如何使用数组[11111,22222,99999]得到相同的结果???
答案 0 :(得分:1)
你正在寻找ruby中的splat运算符来解构数组。它基本上采用数组的单个参数并解构它,使每个值成为一个参数。
所以你会做类似的事情:
a_collection_containing_exactly(*contact_ids_subset)