在Hash中搜索不包含值的条目

时间:2015-08-11 19:56:07

标签: ruby ruby-on-rails-4 hash

我不太确定如何标题这个问题,而且我很难将它付诸实践,所以这里也是如此。

我有一个各种大小的用户哈希。这可以是2到40之间的任何地方。我还有一个票据哈希,我想搜索并找到任何不包含我的用户哈希的user_id的条目。我不太清楚如何做到这一点。我最后一次尝试使用了这个:

@not_found = []
users.each do |u|
  @not_found += @tickets.select{|t| t["user_id"] != u.user_id}
end

我知道这不是正确的结果,因为它只对一个user_id进行比较。我需要做的是运行所有票证并提取包含不在用户哈希中的user_id的任何结果。

我希望我能正确解释这一点,并感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

试试这个

known_user_ids = users.map(&:user_id)
tickets_with_unknown_users = @tickets.reject{ |t| known_user_ids.include?(t["user_id"]) }