循环相关::可能在ActiveRecord中销毁



在ActiveRecord模型中使用循环dependent: :destroy选项安全吗?

class Student < ActiveRecord::Base
  has_one :user, dependent: :destroy
end
class User < ActiveRecord::Base
  belongs_to :student, dependent: :destroy
end

如果我删除一个user,它应该删除关联的student。反之亦然。

是。AR只会为单个事务中的每个实体发出删除查询。假设一个用户有两个学生(a和b)。如果您删除了学生a,AR将删除学生a,导致删除用户,导致删除学生b,导致最终重复删除用户。重复删除(除了一个小的性能打击)不会导致任何类型的错误。反之,删除用户也会很好。

相关内容

  • 没有找到相关文章

最新更新