[英]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.