在不破坏rails中的原始记录的情况下销毁相关数据

时间:2017-08-24 08:11:45

标签: ruby-on-rails

是否有一种简单的方法可以销毁与特定记录关联的数据,而不会破坏原始记录。例如,如果我有

class User < ActiveRecord::Base
  has_many: pets, dependent: :destroy
  has_many: houses, dependent: :destroy
end

class Pet < ActiveRecord::Base
  belongs_to :user
end

class House < ActiveRecord::Base
  belongs_to :user
end

如果我想删除用户及其所有宠物和房屋,我可以执行以下操作:

user = User.first
user.destroy

但是,如果我想留住用户,但只是想删除他们的宠物和房屋怎么办?有没有一种简单的方法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

你必须手动完成,例如回调。

class User

   {callback} :destroy_pets

   private

   def destroy_pets
     self.pets.delete_all   
   end
 end