在我的Ruby on Rails应用程序中,我有一个显示搜索结果的页面。搜索范围包括people
和households
。
在搜索结果中显示people
时,也会显示其家庭。如果搜索与家庭的地址匹配,但家庭已经在结果中显示针对某个人,我只想显示该人(意味着家庭显示一次,而不是两次)。
在Ruby中,我如何比较@results.households
和@results.people
数组,并在ERB中显示结果列表,如果它与household.id
匹配,则从列表中删除person.household.id
这也包括在结果中。
简化数据模型如下:
家用
人
答案 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
。