如何检查记录数组是否包含另一个数组中的每个字符串

时间:2013-09-24 23:27:04

标签: ruby-on-rails ruby activerecord

我有一个由WHERE有效记录查询产生的记录数组。每条记录都有2到16个字符串作为其属性。我需要查看是否有任何记录包含另一个数组中的所有字符串作为其属性。我怎样才能做到这一点?

字符串示例数组

["12349", "12IUS823", "4809JDSL"]

类似记录数组中的样本记录

产品

  • ID1
  • ID2
  • ID3
  • ID4
  • ID5
  • ID6

2 个答案:

答案 0 :(得分:1)

假设您可以通过strings方法获取所有字符串属性的数组。我会检查数组的差异是否为空。它选择至少包含arr

中所有字符串的记录
arr = ["12349", "12IUS823", "4809JDSL"]

records.select{|x| (arr - x.strings ).empty? }

答案 1 :(得分:0)

我认为你正在寻找类似的东西......

["12349", "12IUS823", "4809JDSL"].all? { |value| [ id1 , id2 , id3 ].any? { |id| id == value } }