https://rails-bestpractices.com/posts/2012/11/02/check-the-return-value-of-save-otherwise-use-save/
偉大な本家様
自分の勉強用に Rails Best Practiceシリーズを翻訳します。
Before
無効なレコードに “save “を使用した場合、そのレコードは保存されません。
post = Posts.new do |p|
p.title = "example"
p.body = "An example"
end
post.save
default_scope は、期待していないいくつかの動作を追加します。
このコードは現時点では動作するかもしれませんが、脆弱です。後のリファクタリングでPostsに新しい必須カラムが導入された場合、save
コールは静かに失敗し始めます。
Refactor
If you think the record can never be invalid, or don’t want to check the return value, use
レコードが絶対に無効になることはないと思う場合や、戻り値を確認しない場合は “save!“を使ってください。
post = Posts.new do |p|
p.title = "example"
p.body = "An example"
end
post.save!
これで、postが保存できない場合にエラーが出るようになり、問題を警告してくれるようになりました。
Similar methods
また、record.update_attributesメソッドは、変更の保存に失敗した場合は “false “を返します。save
と同様に、戻り値を確認するか、update_attributes!を使用する必要があります
RecordClass.createメソッドは、新しく作成したメソッドの保存に失敗することがありますが、その場合は「false
」を返しません。このような理由から避けるべきで、常にRecordClass.create!を使うべきです
コメント