【问题标题】:Rails 4 - how to compare two collection of objects and pick the same ones?Rails 4 - 如何比较两个对象集合并选择相同的对象?
【发布时间】:2016-06-03 10:12:33
【问题描述】:

我正在运行 2 次(有时 3 次)搜索,例如:

first_search  = Company.where('...') # returns 2 objects
second_search = Company.where('...') # returns 4 objects

假设first_search 包含具有这些 ID 的对象:

10
20

second_search 包含

10
30
40
50

我想将来自first_searchsecond_search 的具有相同ID 的对象保存到另一个变量(比如results),因此results 将只包含具有ID 的对象:

10

如何做到这一点?

谢谢/

编辑: 交叉点基于id 列工作,对吗?有没有办法让交叉点在不同的列上工作?说name

【问题讨论】:

  • 是一个id数组吗?
  • 对象数组
  • @user984621 您可以从数据库级别执行此Intersection 操作。我想。

标签: ruby-on-rails arrays ruby activerecord hash


【解决方案1】:

看起来这也适用于对象。

results = first_search & second_search

【讨论】:

  • 谢谢@Nithin 的回答——这个交叉点基于id 列,对吧?有没有办法让交叉点在不同的列上工作?说name?谢谢
【解决方案2】:

你只是想走路口,你可以这样做

results = first_search & second_search

但是当你想找到对象的交集时,这里是已经回答它的链接。希望对你有帮助。

Intersection of two relations

【讨论】:

    猜你喜欢
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    • 2018-11-20
    • 1970-01-01
    • 2021-05-08
    相关资源
    最近更新 更多