ich einen Raum Modell habe, und ich will diesenRails finden oder erstellen basierend auf zwei Felder
Venue.find_or_create_by_
tun, aber ich möchte nur ein neuer Ort erstellt werden, wenn man mit dem gleichen Namen und das Datum nicht bereits existieren
zum Beispiel
=> Venue(id: integer, location: string, showdate: datetime, created_at: datetime, updated_at: datetime)
Ein Ort ist einzigartig und geschaffen werden muss, wenn die Lage und die showdate in der DB nicht vorhanden sind
Jeez, Rails und besonders Ruby erstaunt mich immer wieder. Woher weiß es, was diese Funktion bedeutet? Gibt es irgendeine Art von Catch alle find_or_create_by_ * Funktion, die es interpretiert? – Jordan
Eigentlich vergiss ich nur die Rails-Quelle - Rails verwendet eine method_missing-Funktion, die eine Regex auf die aufgerufene Methode durchführt und diese zerlegt. Es ist Genie. Wenn jemand anders interessiert ist, lesen Sie active_record/base.rb in der Rails-Quelle. – Jordan
Auch akzeptabel ist es, sie als Argumente zu übergeben. Venue.find_or_create_by (: location => location,: showdate => showdate) –