Ho un modello locale e voglio fare questoRails trovare o creare basano su due campi
Venue.find_or_create_by_
ma voglio solo una nuova sede per essere creato se uno con lo stesso nome e la data non sono già esistere
ad esempio
=> Venue(id: integer, location: string, showdate: datetime, created_at: datetime, updated_at: datetime)
Terreno è unica e deve essere creato se la posizione e l'showdate non sono presenti nel db
Jeez, Rails e in particolare Ruby mi stupiscono continuamente. Come fa a sapere cosa significa questa funzione? C'è qualche tipo di catch all funzione find_or_create_by_ * che lo interpreta? – Jordan
In realtà, ho appena dato un'occhiata all'origine Rails - Rails utilizza una funzione method_missing che esegue un'espressione regolare sul metodo chiamato e la decompone. È geniale. Se qualcun altro è interessato, controlla active_record/base.rb nell'origine Rails. – Jordan
Anche accettabile è passarli come argomenti. Venue.find_or_create_by (: location => location,: showdate => showdate) –