我有一张存放一些声音的桌子。我试图创建一个循环,它将读取表,然后重新读取表并删除和记录接近重复的。
我的代码是这样的:
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进行比较,因为我需要进行一些相当长的计算。