0

有没有我可以让这个算法更快?

我正在获取此模型(工件)的所有文档,对于每个文档,我想知道是否有重复,如果有,我将其删除。

   Artifact.all.to_a.each do |n|
      image = n.image_original
      thumb = n.image_thumbnail
      count_value =  Artifact.where(:image_original => image, 
                         :image_thumbnail => thumb).all.to_a.count
      if count_value > 1
        n.destroy!
      end
    end
4

1 回答 1

1

您需要uniq像这样调用 Artifacts 集合上的方法:

@all_artifacts = Artifact.all
@distinct_artifacts = @all_artifacts.uniq {|artifact| artifact.image_original}

您可以使用Criteria#distinctlike this Artifact.distinct(:image_original),但这只会返回仅包含该字段的不同值。

于 2015-02-22T07:55:08.623 回答