我有3个模型A,B和C. B是A& A之间的连接表。 C.关联是通过has_many :through
进行的。
我想知道非联接表模型(在我的情况下是A& C)是否应该dependent: :destroy
与联接表关联,或者它是否由rails自动处理?
HABTM协会的答案是否相同?
答案 0 :(得分:2)
不,因为您可以删除记录而不实例化它们,这些记录不会调用依赖性破坏,并且您将留下孤立记录。
相反,如果你添加一个外键,数据库将处理删除,如果你实例化对象并不重要。
例如,在迁移中,您可以添加
def change
add_foreign_key :as, :bs, on_delete: :cascade
end
或者在表创建迁移中
t.belongs_to :a, foreign_key: { on_delete: :cascade }