Ruby on rails 销毁活动记录中的孤立多态关联
我最近在Rails应用程序中使用多态关联创建了一个通知系统。在系统停止为某些用户显示通知之前,所有这些都运行良好。我意识到罪魁祸首是一个孤立的通知-其中notification.notifiable\u id返回一个不存在的用户。下面是一张图表: 用户模型: 因此,负责创建通知的用户仍有可能删除其帐户,从而使通知记录在一端孤立 问题: 1.如何删除未找到Notification.notifiable\u id的所有通知Ruby on rails 销毁活动记录中的孤立多态关联,ruby-on-rails,postgresql,polymorphic-associations,Ruby On Rails,Postgresql,Polymorphic Associations,我最近在Rails应用程序中使用多态关联创建了一个通知系统。在系统停止为某些用户显示通知之前,所有这些都运行良好。我意识到罪魁祸首是一个孤立的通知-其中notification.notifiable\u id返回一个不存在的用户。下面是一张图表: 用户模型: 因此,负责创建通知的用户仍有可能删除其帐户,从而使通知记录在一端孤立 问题: 1.如何删除未找到Notification.notifiable\u id的所有通知 如何防止此问题在将来破坏通知系统 在发布这篇文章之后,我意识到我误解了多态
Notification.all.each do |notification|
notification.destroy if notification.notifiable.nil?
end
dependent::destroy
上缺少冒号。这将防止在销毁用户记录时正确销毁通知酷。谢谢关于解决问题2有什么想法吗?
has_many :notifications, as: :notifiable, dependent: :destroy
Notification.all.each do |notification|
notification.destroy if notification.notifiable.nil?
end