私はRails 5を使用しています。IDでレコードを検索するのは混乱しています。私はモデルUserを持っていますが、無IDで調べると、結果は戻ってきます...Rails 5では、find_byが存在しない場合、結果を返さないようにするにはどうすればよいですか?
2.4.0 :002 > User.find_by(nil)
User Load (0.5ms) SELECT "users".* FROM "users" LIMIT $1 [["LIMIT", 1]]
=> #<User id: 2, provider: "google_oauth2", uid: "10152354902902839283465", email: "[email protected]", first_name: "Dave", last_name: "LastName", oauth_token: nil, oauth_expires: nil, created_at: "2017-08-28 19:49:18", updated_at: "2017-09-04 20:03:36", last_login: nil, currency_id: nil, email_confirmed: false, confirm_email_key: nil, confirm_key_expires: nil>
どのように私は、そのIDでアクティブなレコードを検索が、何のIDが指定されたパラメータに一致しない場合にはnilを返していますか?
ありがとうございます。私はまだUser.find_by(id)はidがnilだと主張していますが、結果は混乱します。 – Dave
はい、それは方法を使用する非常に非正統な方法です。このメソッドは、通常はハッシュ形式の条件を指定する必要があります(ただし、SQLフラグメントを使用できます)。 –