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

[解決済み] Railsです。railsでfind(id)が例外を発生させるのはなぜ?重複

2022-08-05 21:55:16

質問

重複の可能性があります。

Model.find(1) で id 1 が存在しないと ActiveRecord のエラーになる。

データベースにidが1のユーザーが存在しない場合、以下のように試します。 User.find(1) を試すと、例外が発生します。

これはなぜでしょうか?

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

RDocで示されているように、これが建築家が意図したfind(id)の動作方法だからです。

idで検索 - これは特定のid (1)、idのリスト (1、5、6)、またはidの配列 ([5, 6, 10]) のいずれかにすることができます。リストされたidのすべてについてレコードが見つからない場合、RecordNotFoundが発生します。

例外を発生させたくない場合は、find_by_idを使用します。これは、指定されたidを持つオブジェクトが見つからない場合はnilを返します。 この例では、次のようになります。 User.find_by_id(1) .