/ / नए माता-पिता बनाएं लेकिन मौजूदा बच्चे का उपयोग करें - रूबी-ऑन-रेल, रूबी

नए माता-पिता को बनाएं लेकिन मौजूदा बच्चे - रूबी-ऑन-रेल, रूबी का उपयोग करें

मेरे पास दो मॉडल हैं:

class Unit < ActiveRecord::Base
...
has_many :sites
end

class Site < ActiveRecord::Base
...
page_id
belongs_to :unit
end

इसलिए अब एक नई यूनिट बनाते समय मैं हमेशा यह जांचना चाहता हूं कि क्या एक ही पेज_आईडी वाली साइट पहले से मौजूद है तो केवल एक नई "यूनिट" बनाएं लेकिन मौजूदा "साइट" का उपयोग करें। लेकिन अगर वहाँ नहीं था Site उसी के साथ page_id फिर एक नई साइट के साथ एक नई इकाई बनाएँ।

उत्तर:

उत्तर № 1 के लिए 1

सबसे आसान उपाय जो मैं सोच सकता हूं, वह है रेल का उपयोग करना " find_or_create_by तरीका। दस्तावेज है यहाँ.

इस तरह, जब एक नया निर्माण Site, आप बस कुछ ऐसा कर सकते हैं:

u = Unit.new
u.site = Site.find_or_create_by(page_id: @page_id)

कहा पे @page_id सवाल में page_id है।