J'ai deux modèles comme ci-dessous:
class Unit < ActiveRecord::Base
...
has_many :sites
end
class Site < ActiveRecord::Base
...
page_id
belongs_to :unit
end
Alors maintenant, lors de la création d'une nouvelle unité, je veux toujours vérifier si un site avec le même identifiant de page existe déjà, créez uniquement une nouvelle "Unité" mais utilisez le "Site" existant. Mais s'il n'y avait pas Site
avec le même page_id
puis créez une nouvelle unité avec un nouveau site.
Réponses:
1 pour la réponse № 1La solution la plus simple à laquelle je puisse penser utilise Rails " find_or_create_by
méthode. La documentation est ici.
De cette façon, lors de la création d’un nouveau Site
, vous pouvez simplement faire quelque chose comme ceci:
u = Unit.new
u.site = Site.find_or_create_by(page_id: @page_id)
Où @page_id
est le page_id en question.