2016-08-25 7 views
0

私のRuby on Railsアプリケーションでは、検索結果を表示するページがあります。検索はpeoplehouseholdsをカバーしています。2つのデータ型を検索するときに検索結果から重複を削除する

peopleが検索結果に表示されると、その世帯も表示されます。検索結果が世帯の住所と一致していても、その家計が既にその人物と照合して表示されている場合、その人物を表示したいだけです(つまり、世帯は2回ではなく1回表示されます)。 Rubyで

、どのように@results.households@results.people配列を比較し、それはまた、結果に含まれるperson.household.idに一致する場合、リストからhousehold.idを除去ERBに結果の一覧を表示するであろう。

次のように単純化されたデータモデルは次のとおりです。

家庭

  • ID
  • 住所
  • 人々
    • ID
    • 名前

  • ID
  • 家庭
    • ID
    • 住所

答えて

0

あなたは

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

ような何かをし、あなたのERBでhouseholdsを表示するuniq_householdsを使用することができます。

関連する問題