レコードがない場合に find() で nil を返す 質問する

レコードがない場合に find() で nil を返す 質問する

私の現在のRailsプログラムでは、次のようなものを使用しています

 user = User.find(10)

ID=10 のユーザーがいない場合、次のような例外が発生します:

ActiveRecord::RecordNotFound: Couldn't find User with ID=10

次のようなことを行うときに、例外を発生させる代わりに nil を取得できますか:

unless user = Challenge.find(10)
  puts "some error msg"         
end

レコードがない場合にnilを取得したいだけで、begin/rescueは使いたくない

ありがとう

ベストアンサー1

はい、次の操作を実行してください:

Challenge.find_by_id(10)

Rails 4 および 5 の場合:

Challenge.find_by(id: 10)

おすすめ記事