При сохранении и обновлении объекта возвращаемое значение имеет тип boolean - true
или false
.Возврат true/false при создании объекта
Как метод create
возвращает объект как значение, как я могу узнать, произошло ли сбой создания или нет?
При сохранении и обновлении объекта возвращаемое значение имеет тип boolean - true
или false
.Возврат true/false при создании объекта
Как метод create
возвращает объект как значение, как я могу узнать, произошло ли сбой создания или нет?
Вы можете попробовать
@object = Blah.create()
@object.persisted? # true or false
также, если вы хотите, чтобы бросить ошибку вместо того, чтобы вы могли использовать версию взрыва, обязательно использовать спасательные
@object = Blah.create!()
В чем разница между использованием 'valid?' И 'persisted?' – Numbers
'valid' проверяет, является ли объект действительным или нет, но' persisted' проверяет, сохранено или нет, объект может быть сохранен, но недействителен, либо путем добавления валидаторов позже после сохранения объекта, либо путем сохранения с проверкой пропустить '@ object.save (validate: false)' –
--------- ---------- – Numbers
Возможный дубликат [Ruby on Rails Active Record возвращает значение при создании сбоя?] (Http://stackoverflow.com/questions/23975835/ruby-on-rails-active-record- return-value-when-create-fail) – lurker
Спасибо. И ответ на ваш удаленный комментарий: я получаю 'false' при сравнении' nil' с переменной, сохраняющей возвращаемое значение (неудачного создания). – Numbers