ActiveRecordの結果の繰り返し中に配列からアイテムを削除する最適な方法を探したいと思います。RailsでActiveRecordリレーションを反復するときに同様のレコードを削除する
データベースからではなく、配列からレコードを削除したいとします。だから私は例えばa.delete(レコード)を使用することはできません。
# find similar items @items in a AR relation array
@items = Item.where("toto = ?", value).to_a
@items.each do |i|
# match similar records using postgres
@similar_items = ...
# now try to remove similar items from original @items array
@similar_items.each do |similar_item|
# this seems to not work
@items.reject! { |item_to_remove|
item_to_remove == similar_item
end
end
end
は実際には、私の目標は、それらを繰り返すしないようにマッチした商品を使用して配列からすべての重複を削除することです。私はあなたに次のようなアプローチ提案する
あなたは、文字通り同等の意味ですか、実行中の「類似性」機能はありますか? – tadman
私はPostgresの類似(Ngrams)機能を使用しています。 –
ここではまっすぐな '=='比較をしているので、これがどのように機能するのかは分かりません。 – tadman