7
Equipment.create(name: "Room to run") 
Equipment.create(name: "Pull-up bar") 
Workout.create(
    description: "Do 100 pull-ups then run 5km", 
    :equipment => Equipment.where(:name => 'Pull-up bar')) 

उपकरण और वर्कआउट्स में एचएबीटीएम संबंध है। उपर्युक्त बीजों का कोड काम करता है लेकिन मैं पहले के रूप में एक ही समय में एक दूसरा उपकरण संघ कैसे आवंटित कर सकता हूं?रेल - सीएडी एचएबीटीएम एसोसिएशन

उत्तर

7

जहां हालत में, आप सरणी का उपयोग कर सकते हैं:

Equipment.create(name: "Room to run") 
Equipment.create(name: "Pull-up bar") 
Workout.create(
    description: "Do 100 pull-ups then run 5km", 
    :equipment => Equipment.where(:name => ['Pull-up bar', 'Room to run'])) 
+0

इस उदाहरण में उपकरण का उपयोग दुर्भाग्यपूर्ण है। संज्ञा उपकरण एकवचन और बहुवचन दोनों है, जो एक महत्वपूर्ण विस्तार छुपाता है। अगर हम कुत्तों के बारे में बात कर रहे थे तो उदाहरण इस तरह दिखेगा:: कुत्तों => कुत्ते। कहीं (: नाम => ['फिडो', 'बुच'])) –

2

बीजों में दायर इस सरल सूची के साथ उत्पादों और श्रेणियों (HABTM) संबंध में काम किया। यह सुपर शाब्दिक और प्रभावी है।

Product.find(1).categories << Category.find(4) 
Product.find(1).categories << Category.find(5) 
Product.find(2).categories << Category.find(5)