In Schiene 4, mit mehreren Bedingungen zum Beispiel finden erwägen finden Profile
mit first_name
und last_name
Profile.find_by first_name: 'stack', last_name: 'flow'
den ersten Datensatz Findet die festgelegten Bedingungen entsprechen. Es gibt keine implizite Bestellung, also wenn die Bestellung wichtig ist, sollten Sie sie selbst angeben. Wenn kein Datensatz gefunden wird, gibt nil
Profile.find_by! first_name: 'stack', last_name: 'flow'
Wie find_by, mit der Ausnahme, dass, wenn kein Datensatz gefunden wird, wirft eine Activerecord :: RecordNotFound Fehler.
Für weitere Informationen lesen Rails Finder Method
1: http://api.rubyonrails.org/classes/ActiveRecord/FinderMethods.html#method-i-find_byIn Schiene 4, finden mit mehreren Bedingungen zum Beispiel prüfen, finden Profile
mit first_name
und last_name
Profile.find_by first_name: 'stack', last_name: 'flow'
den ersten Datensatz Findet die festgelegten Bedingungen entsprechen. Es gibt keine implizite Bestellung, also wenn die Bestellung wichtig ist, sollten Sie sie selbst angeben. Wenn kein Datensatz gefunden wird, gibt nil
Profile.find_by! first_name: 'stack', last_name: 'flow'
Wie find_by, mit der Ausnahme, dass, wenn kein Datensatz gefunden wird, wirft eine Activerecord :: RecordNotFound Fehler.
Für weitere Informationen lesen Rails Finder Method
'.all' nicht notwendig ist. – Mischa
@Mischa - Sehr wahr, aber das hängt natürlich davon ab, wo und wie man die Aussage verwendet, und ich stimme zu, dass es in den meisten Fällen nicht notwendig ist. Für diese Antwort wollte ich explizit das resultierende Array und kein ActiveRecord :: Relation-Objekt zurückgeben, um mögliche Verwirrung zu vermeiden. Danke, dass du das gezeigt hast! – miked
Ich denke nur, es sieht komisch aus, 'all' zu nennen, wenn du * nicht alle willst. Wenn Sie es nur tun, um ein Array anstelle einer 'ActiveRecord :: Relation' zurückzugeben, wäre IMO klarer, stattdessen' to_a' zu nennen. – Mischa