मेरे पास दो मॉडल हैं:
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 है।