有没有办法测试 activerecord 集合是否包含 rspec 中的任何记录数组?

is there a way to test if an activerecord collection contains any of an array of records in rspec?

我有一个测试:

let!(:things_I_dont_want_to_appear) { create_list :books, archived }
expect(assign(:things).to_a).not_to include(things_I_dont_want_to_appear)

我用了to_a因为things_I_dont_want_to_appear是一个数组,但是'include'好像不能处理对象比较?

使用这个:

expect(assign(:things).to_a).not_to include(*things_I_dont_want_to_appear)

阅读array usage。对于 Array#include 必须有一个逗号 (,) 分隔的参数列表。 splat(*) 为您完成这项工作。