ActiveRecord метод 'destroy' возвращает логическое значение в Ruby on Rails?
Я использую Ruby on Rails 3, и я хотел бы знать, какой тип возврата будет иметь следующий код:
@user.destroy
Мне нужно это для обработки случаев успеха и ошибки в некотором роде, как это:
if @user.destroy
puts "True"
else
puts "false"
end
Является ли это возможным? Если так, то как?
2 ответа
Решение
Вы должны попробовать то, что вы спрашиваете, прежде чем спрашивать. То, что у вас там, будет работать просто отлично.
Если уничтожение сработает, он вернет объект (который будет передан как true в операторе if), а если нет, он вернет false или вызовет исключение, в зависимости от причины сбоя.
Возможно. Метод destroy возвращает объект, который был уничтожен; вы могли бы использовать destroyed?
на этом объекте ActiveRecord, чтобы проверить, эффективно ли уничтожен объект:
if @user.destroyed?
puts "True"
else
puts "false"
end