Ruby on rails 销毁依赖数据而不销毁rails中的原始记录

Ruby on rails 销毁依赖数据而不销毁rails中的原始记录,ruby-on-rails,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::

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

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

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

您必须手动完成,例如使用回调

class User

   {callback} :destroy_pets

   private

   def destroy_pets
     self.pets.delete_all   
   end
 end

在什么事件中要销毁相关记录?
User.pets.delete_all
User.house.delete_all
查看它不在特定事件中。我只想能够调用一个实例方法,比如
house.destroy\u dependent\u pets
,如果我这样做
self.pets.delete\u all
,它不会调用相关宠物的
destroy
方法,对吗?因此,如果它们有依赖对象,就不会破坏它们。
class User

   {callback} :destroy_pets

   private

   def destroy_pets
     self.pets.delete_all   
   end
 end