2014-09-06 1 views
0

При сохранении и обновлении объекта возвращаемое значение имеет тип boolean - true или false.Возврат true/false при создании объекта

Как метод create возвращает объект как значение, как я могу узнать, произошло ли сбой создания или нет?

+0

--------- ---------- – Numbers

+1

Возможный дубликат [Ruby on Rails Active Record возвращает значение при создании сбоя?] (Http://stackoverflow.com/questions/23975835/ruby-on-rails-active-record- return-value-when-create-fail) – lurker

+0

Спасибо. И ответ на ваш удаленный комментарий: я получаю 'false' при сравнении' nil' с переменной, сохраняющей возвращаемое значение (неудачного создания). – Numbers

ответ

1

Вы можете попробовать

@object = Blah.create() 
@object.persisted? # true or false 

также, если вы хотите, чтобы бросить ошибку вместо того, чтобы вы могли использовать версию взрыва, обязательно использовать спасательные

@object = Blah.create!() 
+0

В чем разница между использованием 'valid?' И 'persisted?' – Numbers

+0

'valid' проверяет, является ли объект действительным или нет, но' persisted' проверяет, сохранено или нет, объект может быть сохранен, но недействителен, либо путем добавления валидаторов позже после сохранения объекта, либо путем сохранения с проверкой пропустить '@ object.save (validate: false)' –