Mam modelu miejsce i chcę zrobić toRails znaleźć lub utworzyć na podstawie dwóch pól
Venue.find_or_create_by_
ale chcę tylko nowy obiekt ma zostać utworzony, jeśli jeden z tą samą nazwą i datą nie robić już istnieją
Przykładowo
=> Venue(id: integer, location: string, showdate: datetime, created_at: datetime, updated_at: datetime)
miejscem jest niepowtarzalny i musi być utworzony, gdy lokalizacja i showdate nie są obecne w db
Jeez, Rails, a szczególnie Ruby ciągle mnie zadziwia. Skąd wie, co oznacza ta funkcja? Czy istnieje jakiś rodzaj funkcji catch find_or_create_by_ *, która je interpretuje? – Jordan
Właściwie nigdy nie myśl, po prostu rzuciłem okiem na źródło Railsów - Rails używa funkcji method_missing, która wykonuje wyrażenie na metodę, która go wywołuje i rozkłada. To geniusz. Jeśli ktoś jest zainteresowany, sprawdź active_record/base.rb w źródle Rails. – Jordan
Akceptowalne jest również przekazanie ich jako argumentów. Venue.find_or_create_by (: location => location,: showdate => showdate) –