1. ホーム
  2. ruby-on-rails

[解決済み] レコードがないときに nil で find() する。

2022-10-08 19:42:54

質問

現在使用している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は使いたくありません。

ありがとうございます。

どのように解決するのですか?

そうです、ただやるだけです。

Challenge.find_by_id(10)

Rails4,5用。

Challenge.find_by(id: 10)