4
0

たぶん年明けくらいに一番言ったこと

Posted at

例外処理書かないならバイつけようぜバイ

今年の頭か去年の頭か時期は忘れたもののrailsのコードでデータの検索時にfindを書いているパターンをよく見ました。

なんか違うんだっけ?

基本的な話ですが、findとfind_byではいろいろと違うことがあります。
検索の条件に渡せるものがfindだとIDだけなのに対してfind_byになると他のカラムで行けたり、取得結果としてfindだと複数取得できるけどfind_byだったらマッチした最初の1件だったり・・・

そして一番の違いがマッチするデータがなかった時の挙動です。
find_byではnilが返ってくるのに対してfindだと例外(ActiveRecord::RecordNotFound)を発生させて処理が中断します。

例外処理書くならfindでもいいんだけどね

データがなかった場合は・・・するみたいな処理の時はfindで例外処理書いてあげればデータ取得→有無判定→処理の流れで有無判定をなくせるのですっきりするものの指摘したときはそういう処理だったわけでもなかったのでfind_byでええやん、になりましたとさ

今はもう言うことなくなってよかった

最近はもういう機会もなくなったものの、懐かしいおもひでとして覚えておきたい

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0