我想获得购买“foobar”产品的所有客户的电子邮件地址。首先我尝试了这个。它工作得很好。
Customer.search(query: "state:enabled").each do |c|
c.orders.map do |o|
o.line_items.each do |i|
t = i.title
p c.email if t.include?("foobar")
end
end
end
然后我尝试了另一种方式,我认为这相当于上面的方式。但是这个只导致了上面的一部分。
Customer.find(:all, params:{state:"enabled"}).each do |c|
c.orders.map do |o|
o.line_items.each do |i|
t = i.title
p c.email if t.include?("foobar")
end
end
end
我的问题是; Customer.search(...)
,/admin/customers/search.json
的端点和Customer.find(:all, ...)
之间有什么区别?
编辑:我有“foobar”产品的客户超过50(返回值的默认限制),因此每个客户实际上都是满足查询的整个客户组的子集。但是,如果Customer.search
和Customer.find
之间没有差异,则两个查询都会得到相同的结果。或者,我在这里猜错了吗?