在Rails

时间:2017-10-31 15:33:48

标签: ruby-on-rails rails-activerecord

我想在ActiveRecord结果的迭代过程中找到从数组中删除项目的最佳方法。

我想从数组中删除记录,而不是从数据库中删除。所以我不能使用 a.delete(record)作为例子。

# 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

事实上,我的目标是使用匹配的相似项目从阵列中删除所有重复项,以便不重复它们。

1 个答案:

答案 0 :(得分:0)

我建议你采用以下方法:

  1. 收集所有类似物品
  2. 在您排除这些类似项目的地方返回收藏。
  3. 它应该简化您的代码并减少迭代次数。

    {{1}}