ruby-on-rails - 优化每个对象的字段更新(相同的值)

ruby-on-rails - 优化每个对象的字段更新(相同的值),第1张

我有这个特殊的代码来更新每个记录的表格中的4列。

EmailSettings::PREFERENCE_NAMES.keys.each { |k| self.update_attribute(k, false) }

我认为每个密钥都会访问数据库。

有没有办法优化这段代码,以便它只会打到DB一次?

最佳答案:

2 个答案:

答案 0 :(得分:0)

您可以使用update_all。例如。

fields = []
keys.each do |key|
  fields << "#{key.to_s} = false"
end

Table.scope.update_all(fields.join(','))

答案 1 :(得分:0)

EmailSettings::PREFERENCE_NAMES.keys.each { |k| self.attributes = {k => false} }
self.save
本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复