O doğru olmakla birlikte createaramaları newve daha sonra saveonların dönüş değerleri iki alternatif arasında büyük bir fark vardır.
Savenesnenin veritabanına başarıyla kaydedilip kaydedilmediğine bağlı olarak trueveya döndürür false. Bu daha sonra yukarıdaki sorudaki ilk örneğe göre akış kontrolü için kullanılabilir.
Createnesnenin kaydedilip kaydedilmediğine bakılmaksızın modeli döndürür. Bu, yukarıdaki kod için, ifnesnenin doğrulamalarda başarısız olmasına ve kaydedilmemesine rağmen , ifadenin üst dalının her zaman yürütüleceğinden kaynaklanır.
Eğer kullanırsanız createmantığını dallanma ile kullandığınız takdirde durum olmadığı sessiz başarısızlık riski vardır new+ save.
create! kayıt geçersiz olduğunda aynı sorundan ve istisnadan muzdarip değildir.
createBurada bir alternatif kontrol yararlı olabilir respond_withAPI (JSON / XML) yanıtlar için kullanılır. Bu durumda, nesnede hataların varlığı, unprocessable_entitybir API durumundan tam olarak istediğiniz bir durumla yanıtta hataların döndürülmesine neden olur .
Özellikle akış kontrolü için dönüş değerine güveniyorsanız, her zaman html için new+ saveseçeneğini kullanırdım .