搜索两种数据类型时从搜索结果中删除重复项

时间:2016-08-25 10:22:08

标签: ruby-on-rails ruby

在我的Ruby on Rails应用程序中,我有一个显示搜索结果的页面。搜索范围包括peoplehouseholds

在搜索结果中显示people时,也会显示其家庭。如果搜索与家庭的地址匹配,但家庭已经在结果中显示针对某个人,我只想显示该人(意味着家庭显示一次,而不是两次)。

在Ruby中,我如何比较@results.households@results.people数组,并在ERB中显示结果列表,如果它与household.id匹配,则从列表中删除person.household.id这也包括在结果中。

简化数据模型如下:

家用

  • ID
  • 地址
    • ID
    • 名称

  • ID
  • 家用
    • ID
    • 地址

1 个答案:

答案 0 :(得分:0)

你可以做点什么

people_household_ids = @results.people.map(&:household).compact.map(&:id)
uniq_households = @results.households.select{|hh| !people_household_ids.include?(hh.id)}

并在您的ERB中使用uniq_households来显示households