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')) 

设备和训练有一个HABTM关系。上述种子代码有效,但我怎样才能在第一次同时分配第二个设备关联?导轨 - 播种HABTM协会

回答

7

在where条件,你可以使用数组:

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

在这个例子中使用设备是不幸的。名词设备既是单数也是复数,它隐藏了一个重要的细节。如果我们在谈论狗,这个例子看起来像::dogs => Dog.where(:name => ['Fido','Butch'])) – 2016-11-03 22:47:46

2

在种子文件这个简单的列表的产品和类别(HABTM)关系的工作。这是超文字和有效的。

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