Я использую полиморфные ассоциации Rails, поэтому некоторые модели имеют много детей cash_histories
, например:
has_many :cash_histories, as: :cashable
Но когда я пытаюсь удалить все истории наличных денег из родительского @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"]]
Я не могу понять это поведение, установив идентификатор отношения к null вместо удаления, что приведет к мертвым строкам в моей таблице. Почему это происходит?
Я использую Rails 4.1.