Переопределить область по умолчанию дочернего объекта при каскадном удалении - PullRequest
0 голосов
/ 16 мая 2018
class Parent
    has_many :children, dependent: :destroy
end

class Child
    belongs_to :parent
    default_scope { where(deleted_at: nil).not_deleted }
end

Моя проблема связана с тем, что некоторые дочерние объекты удаляются программно. Вызов Parent.last.destroy попытается уничтожить только тех детей в области по умолчанию.

Да, я знаю, как сделать что-то вроде Child.last.unscoped, но я хочу, чтобы что-то вроде Parent.find(1).destroy уничтожило все дочерние объекты, включая те, которые были удалены мягко.

Parent.find(1).children.unscoped.destroy_all
Parent.destroy

Выше работает. Есть ли способ уменьшить это до Parent.find(1).destroy?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...