पूरे दिन Google पर खर्च करें, लेकिन कोई जवाब नहीं मिल रहा है। : \रेल: कई (एचएबीटीएम) के पास है और संबंधित है - अन्य रिकॉर्ड बनाने के बिना एसोसिएशन बनाएं
मेरे पास उपयोगकर्ताओं और Core_Values के बीच एक HABTM संबंध है।
- एक CoreValue मौजूद नहीं है, तो एक नया बना तथा उसे किसी उपयोगकर्ता आईडी के साथ संबद्ध है, और
- मान लिया जाये:
class CoreValue < ActiveRecord::Base has_and_belongs_to_many :users class User < ActiveRecord::Base has_and_belongs_to_many :core_values
मेरी नियंत्रक में, मैं दो अलग-अलग काम करने होंगे मैं जानता हूँ कि एक विशेष CoreValue भी मौजूद हैं, किसी भी नए CoreValues या उपयोगकर्ता
# 1 के लिए बनाए बिना संघ पैदा नहीं करता है, मैं इस काम करने के लिए मिल गया है:
+०१२३५१६४१०६User.find(current_user.id).core_values.create({:value => v, :created_by => current_user.id})
यह एक नया कोरवैल्यू बनाता है: मूल्य और: बनाया_by और एसोसिएशन बनाता है।
# 2 के लिए, मैंने कुछ चीजों की कोशिश की है, लेकिन केवल एसोसिएशन बनाने के लिए प्रतीत नहीं हो सकता है।
आपकी मदद के लिए धन्यवाद!
धन्यवाद के लिए
चेक this बनाया जाएगा! पता नहीं था core_values एक सरणी थी - और निश्चित रूप से पता नहीं था कि सरणी में जोड़ने से INSERT बन जाएगा। मिठाई! यदि रिकॉर्ड मौजूद नहीं है तो केवल एसोसिएशन बनाने का कोई तरीका है? मैं सरणी विधियों के माध्यम से देखता हूँ, मुझे लगता है? शायद current_user.core_values.include? – jmccartie
@jmccartie यह करने का एक तरीका हो सकता है, हाँ। स्पष्टीकरण के लिए, मुझे लगता है कि मुझे यह जोड़ना चाहिए कि 'core_values' हमेशा * एक सरणी नहीं है - जैसा कि आप जानते हैं, आप 'core_values.create' को कॉल कर सकते हैं जो मान्य सरणी विधि नहीं है। एक बेहतर परिभाषा यह होगी कि यह "एक सरणी के रूप में कार्य करता है।" फॉलो-अप के लिए – vonconrad
धन्यवाद। शामिल? काम नहीं करेगा अगर मैं current_user.core_values के अंदर नई कोर_वल्यू आईडी पा सकता हूं तो पता लगाने की कोशिश कर रहा हूं ... hmmmm – jmccartie