我最近被告知这是低效的代码。我回复了我同意的人,并且会在数据库或通过数据库处理它的gem中更好地处理它。他们不同意并说你可以在不使用数据库的情况下提高效率。有人可以告诉我如何使这项检查工作并“非常”有效吗?
基本上,该函数遍历每条记录,并确定具有same_value的记录是否具有超过当前模型的some_value的2次编辑。
class SomeActiveRecord < ActiveRecord::Base
# Fields: some_value string
def exceeds_edits?(value, max_edits = 2)
self.class.all.each do |record|
edit_count = (record.some_value.split('') - value.split('')).length
return false if edit_count >= max_edits
end
end
end
所以我的论点是你仍然必须拉动数据库中的每条记录来比较编辑的数量,无论你如何写这个都会使它效率低下。
任何人都可以对此有所了解吗?