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
Другие вопросы по тегам