假设我在一个名为user_ids
.
如果我想,比如说,把他们所有的名字都改成“Bob”,我可以这样做:
users = User.find(user_ids)
users.update_all( :name => 'Bob' )
不过,这不会触发回调。如果我需要在保存这些记录时触发回调,据我所知,唯一的方法是使用:
users = User.find(user_ids)
users.each do |u|
u.name = 'Bob'
u.save
end
然而,这可能意味着控制器操作中的一个非常长的运行任务。
所以,我的问题是,是否有任何其他更好/更高性能/更高效的方式来触发对一组记录的批量更新,从而触发记录上的回调?