मेरे पास दो मॉडल, उपयोगकर्ता और प्रचार हैं। विचार यह है कि एक पदोन्नति में कई उपयोगकर्ता हो सकते हैं, और उपयोगकर्ता के पास कई प्रचार हो सकते हैं।एक has_and_belongs_to_many रिश्ते में रिकॉर्ड जोड़ें
class User < ActiveRecord::Base
has_and_belongs_to_many :promotions
end
class Promotion < ActiveRecord::Base
has_and_belongs_to_many :users
end
मेरे पास कोई भी आईडी नहीं है, इसके साथ ही कोई प्रोमोशन_यूसर टेबल/मॉडल भी है। यह user_id और promotionions_id
class PromotionsUsers < ActiveRecord::Base
end
तो, मैं प्रचार को उपयोगकर्ता कैसे जोड़ूं? मैं कुछ इस तरह की कोशिश की है:
user = User.find(params[:id])
promotion = Promotion.find(params[:promo_id])
promo = user.promotions.new(promo)
यह निम्न त्रुटि में परिणाम है:
NoMethodError: undefined method `stringify_keys!' for #<Promotion:0x10514d420>
अगर मैं इस लाइन के बजाय का प्रयास करें: प्रोमो = user.promotions.new (promo.id)
मैं इस त्रुटि मिलती है:
TypeError: can't dup Fixnum
मुझे यकीन है कि मेरी probl के लिए एक बहुत ही आसान समाधान है कि वहाँ हूँ एम, और मैं सिर्फ समाधान के लिए सही तरीके से खोज नहीं कर रहा हूं।
धन्यवाद की जरूरत नहीं पैदा करते हैं। मैंने सोचा कि मैं चीजों को खत्म कर रहा था। –
करता है << एसोसिएशन को भी बचाता है? – Nonconformist
@ Coolguy123 हां, 'संग्रह << (ऑब्जेक्ट, ...) 'संग्रह.push और collection.concat का उपनाम है। यह तुरंत मूल ऑब्जेक्ट पर सहेजने या अद्यतन कॉल के इंतजार किए बिना अद्यतन एसक्यूएल को फायर करता है। – stereoscott