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