[英]Rails Console - ActiveRecord::RecordNotFound
我正在尝试从数据库中删除大量记录。 当回调由于ActiveRecord::RecordNotFound
而无法销毁记录时,我的destroy_all会不断停止。 当回调试图删除的记录上出现错误ActiveRecord::RecordNotFound
时,我想跳过回调。
所有用户记录都通过UserSchool关系属于学校。 我正在尝试删除所有school_id
记录中出现school_id
:74的所有用户记录。
user_ids = UserSchool.where(school_id: 74).map(&:user_id)
User.where(id: user_ids).destroy_all
结果是:
ActiveRecord::RecordNotFound: Couldn't find Comment with 'id'=17
我想跳过该错误并继续销毁用户记录。 我怎么在这里抢救?
user_ids = UserSchool.where(school_id: 74).map(&:user_id)
users = User.where(id: user_ids)
users.each do |user|
begin
user.destroy
rescue => ActiveRecord::RecordNotFound
puts "Record not found"
end
end
我认为我们可以通过将其循环到每个对象上来进行救援。
user_ids.each do |user_id|
User.find(user_id).destroy rescue nil
end
对于您只能执行的ActiveRecord::RecordNotFound
异常,
user_ids.each do |user_id|
begin
Contact.find(user_id).destroy
rescue => ActiveRecord::RecordNotFound
puts "Record not found"
end
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.