我们应该写依赖:在连接表模型上销毁吗?

时间:2016-10-13 09:05:42

标签: ruby-on-rails join models has-many-through

我有3个模型A,B和C. B是A& A之间的连接表。 C.关联是通过has_many :through进行的。

我想知道非联接表模型(在我的情况下是A& C)是否应该dependent: :destroy与联接表关联,或者它是否由rails自动处理?

HABTM协会的答案是否相同?

1 个答案:

答案 0 :(得分:2)

不,因为您可以删除记录而不实例化它们,这些记录不会调用依赖性破坏,并且您将留下孤立记录。

例如delete_all

相反,如果你添加一个外键,数据库将处理删除,如果你实例化对象并不重要。

例如,在迁移中,您可以添加

def change
  add_foreign_key :as, :bs, on_delete: :cascade
end

或者在表创建迁移中

t.belongs_to :a, foreign_key: { on_delete: :cascade }