[Rails Best Practice]Check the return value of “save”, otherwise use “save!”[訳]

Rails Best Practice

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!を使うべきです

全国630店舗以上!もみほぐし・足つぼ・ハンドリフレ・クイックヘッドのリラクゼーション店【りらくる】

コメント

タイトルとURLをコピーしました