Я пробовал много вещей, чтобы переписать поведение метода: destroy, но ничего не работает. Сначала я использовал плагин act_as_paranoia, но он не работает с моделью в has_many: через объединение.Рельсы: как переписать: уничтожить метод?
Я хочу перезаписать: уничтожить метод только, чтобы сделать что-то вроде этого:
def destroy
_run_destroy_callbacks { delete }
end
def delete
self.update_attribute(:status => 0)
freeze
end
То есть, я просто хочу, чтобы обновить еще одно поле (статус 0) вместо того, чтобы разрушить саму запись.
Да, это было первое, что я пробовал. Это ничего не делает. Я могу увидеть запрос DELETE FROM в моих журналах. Метод пользовательского уничтожения, похоже, не называется. –
Я действительно использую это в нескольких моделях в нескольких приложениях, и он работает безотказно. Есть ли что-то особенное в этой конкретной модели и вы вызываете удаление или уничтожение? Тебе понадобится последний. – miked
Запись уничтожается от ее родителя в AREL (отношение ActiveRecord), может быть, это проблема?Фактически, я обновляю свою модель вина и запись (основная форма, метод обновления в контроллере), и если я хочу удалить дочерний элемент (модель сортов, которая содержит пользовательский уничтожить), она не называется явно. Может быть, механизм рельсов отличается от разрушения, если он родитель, который уничтожает ребенка (не называйте destroy на дочерней модели?) –