Вернуть true/false при создании объекта

При сохранении и обновлении объекта возвращаемое значение имеет логический тип — true или false.

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


person Fellow Stranger    schedule 06.09.2014    source источник
comment
возможный дубликат возвращаемого значения Ruby on Rails Active Record при создании не получается?   -  person lurker    schedule 06.09.2014
comment
Спасибо. И ответ на ваш удаленный комментарий: я получаю false при сравнении nil с переменной, сохраняющей возвращаемое значение (неудачного создания).   -  person Fellow Stranger    schedule 06.09.2014
comment
Да, извините, мой первый комментарий был неверным, поэтому я его удалил.   -  person lurker    schedule 06.09.2014


Ответы (1)


Вы могли бы попробовать

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

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

@object = Blah.create!()
person Mohammad AbuShady    schedule 06.09.2014
comment
В чем разница между использованием valid? и persisted? - person Fellow Stranger; 06.09.2014
comment
valid проверяет, является ли объект действительным или нет, но persisted проверяет, сохранен ли он или нет, объект может быть сохранен, но недействителен, либо путем добавления валидаторов позже после сохранения объекта, либо путем сохранения с пропуском проверки @object.save(validate: false) - person Mohammad AbuShady; 06.09.2014