Ho due modelli come di seguito:
class Unit < ActiveRecord::Base
...
has_many :sites
end
class Site < ActiveRecord::Base
...
page_id
belongs_to :unit
end
Così ora mentre creo una nuova unità, voglio sempre verificare se esiste già un sito con lo stesso page_id, quindi creare solo una nuova "unità" ma utilizzare il "sito" esistente. Ma se non ci fosse Site
con lo stesso page_id
quindi creare una nuova unità con un nuovo sito.
risposte:
1 per risposta № 1La soluzione più semplice che riesco a pensare è usare Rails " find_or_create_by
metodo. La documentazione è Qui.
In questo modo, quando si crea un nuovo Site
, potresti semplicemente fare qualcosa del genere:
u = Unit.new
u.site = Site.find_or_create_by(page_id: @page_id)
Dove @page_id
è il page_id in questione.