Rails - 填充 HABTM 关联数据

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关系。上面的代码可以工作,但是我如何同时分配第二个设备关联与第一个?

2个回答

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

1
这个例子中使用的设备不太合适。名词“equipment”既可以是单数又可以是复数,这隐藏了一个重要的细节。如果我们讨论的是狗,那么这个例子看起来就像::dogs => Dog.where(:name => ['Fido', 'Butch']))。 - J Edward Ellis

3
在种子文件中,这个简单的列表与产品和类别(HABTM)关系配合使用。它非常直观和有效。
Product.find(1).categories << Category.find(4)
Product.find(1).categories << Category.find(5)
Product.find(2).categories << Category.find(5)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接