Hier einige meines Produktionscode (ich musste Zeilenumbrüche erzwingen):Gibt es find_or_create_by_, die einen Hash in Rails nimmt?
task = Task.find_or_create_by_username_and_timestamp_and_des \
cription_and_driver_spec_and_driver_spec_origin(username,tim \
estamp,description,driver_spec,driver_spec_origin)
Ja, ich versuche ein einzigartiges ActiveRecord::Base
Objekt zu finden oder zu schaffen. Aber in der jetzigen Form ist es sehr hässlich. Stattdessen würde Ich mag so etwas verwenden:
task = Task.SOME_METHOD :username => username, :timestamp => timestamp ...
Ich weiß über find_by_something key=>value
, aber es ist nicht hier Option. Ich brauche alle Werte, um einzigartig zu sein. Gibt es eine Methode, die die gleichen wie find_or_create_by
tun würde, aber einen Hash als Eingabe nehmen? Oder etwas anderes mit Ähnlichkeitssemantik?
Ja, kann man sicherlich hinzufügen es zu AR :: Base, aber ich finde, es gibt einige modellspezifische Verhalten, wie Sie bestimmte spezifische Spalten für die Suche auswählen möchten. Aber Sie können es auch immer überschreiben. – wuputah