Вы можете это сделать.
Record.exists?(record)
Однако это приведет к попаданию в базу данных, что на самом деле не нужно. Единственное другое известное мне решение - это выполнить обратный вызов, как упоминалось в IV.
attr_accessor :destroyed
after_destroy :mark_as_destroyed
def mark_as_destroyed
self.destroyed = true
end
А затем проверить record.destroyed
.
Это будет очень скоро. В последнем сообщении Riding Rails говорится следующее:
И, наконец, это не обязательно Связано с BugMash, но Хосе Валим - среди десятков других коммитов - добавлено модель. разрушен ?. Этот изящный метод вернет истину, только если экземпляр вы сейчас смотрите был успешно уничтожен.
Итак, поехали. Скоро в продаже!
destroy
Если объект не возвращает ничего, кроме вызова freeze
(насколько мне известно), я думаю, что заморожен?
- лучший вариант. Другой вариант - спастись из ActiveRecord :: RecordNotFound
, если вы сделали что-то вроде record.reload
.
Я думаю, что тактика Майка, описанная выше, могла бы быть лучшей, или вы могли бы написать оболочку для этих случаев, упомянутых, если вы хотите начать «делать предположения».
Ура.
Не зная больше логики вашего приложения, я думаю, что оно зависло? ваш лучший выбор.
В противном случае вы, безусловно, можете добавить к своим моделям атрибут «уничтожен», который вы запускаете в обратных вызовах и который можно было бы проверить, если вы хотите более точное решение.