我试图找出一种方法来部分删除/销毁rails中的依赖模型。
代码看起来像这样:
class User < ActiveRecord::Base
has_many :subscriptions
has_many :photos, :dependent => :destroy
has_many :badges, :dependent => :destroy
before_destroy :partial_destroy
def partial_destroy
self.photos.destroy_all
self.badges.destroy_all
return false if self.subscriptions.any?
end
...
本质上,我想销毁照片和徽章,但如果用户有任何订阅,我想保留这些,同时也防止用户被销毁。
我尝试.each { |obj| obj.destroy }
使用delete
and delete_all
,但这似乎无关紧要。
before_destroy
每当返回 false时,似乎 Rails 正在执行某种回滚。有没有办法摧毁部分家属而不是其他人?