Ich benutze Rails 5. Ich bin verwirrt über das Nachschlagen eines Datensatzes durch seine ID. Ich habe ein Modell, Benutzer, aber wenn ich mit einer Null-ID nachschlagen, bekomme ich ein Ergebnis ...Wie verhindere ich in Rails 5, dass find_by ein Ergebnis zurückgibt, wenn keines existiert?
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>
Wie sehe ich einen aktiven Datensatz durch seine ID, aber habe es Null zurück, wenn keine ID die angegebenen Parameter übereinstimmt?
Danke. Ich behaupte immer noch, dass User.find_by (id), wo ID ist nil noch Ergebnisse zurückgibt, ist sehr verwirrend. – Dave
Ja ist es, aber es ist eine sehr unorthodoxe Art, die Methode zu verwenden. Die Methode erwartet, dass sie mit einer Bedingung versorgt wird, normalerweise in Form eines Hashes (obwohl ein SQL-Fragment verwendet werden könnte). –