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