我有一张桌子存放一些声音片段。我试图创建一个循环来读取表格,然后重新读取表格并删除接近重复的记录。
我的代码是这样的:
Numbersound.where{id != nil}.order(:id).each do |sound|
Numbersound.where{(id != sound.id) & (sound.wavelength = wavelength)}.each do |duplicate|
if (duplicate.wavecount != nil)
#compare wave files and check if the same
if MatchSound.compare(sound.frames, sound.wavecount, duplicate.frames, duplicate.wavecount, 0.03)
Numbersound.delete(duplicate.id)
end
end
end
问题是我需要从声音数组中删除已删除的记录,否则总会有至少一个匹配项(本身)。
我不能使用 SQL 进行比较,因为我要执行一些相当长的计算。