我正在使用 Rails 多态关联,这样一些模型有很多cash_histories
孩子,就像这样:
has_many :cash_histories, as: :cashable
但是,当我尝试从 parent 删除所有现金历史记录时@resource
,如下所示:
@resource.cash_histories.delete_all
我收到以下查询:
UPDATE "cash_histories" SET "cashable_id" = NULL WHERE "cash_histories"."cashable_id" = $1 AND "cash_histories"."cashable_type" = $2 [["cashable_id", 1], ["cashable_type", "ServiceOrder"]]
我无法理解这种行为,将关系 id 设置为 null 而不是删除,这将导致我的表中出现死行。为什么会这样?
我正在使用 Rails 4.1。