Rails灯具 - 你如何设置外键?

时间:2009-02-04 05:41:10

标签: ruby-on-rails unit-testing testing tdd fixtures

我正在阅读此guide中的Rails灯具(谢谢,trevorturk)。您似乎在Yaml文件中定义了类,它们会自动加载到test数据库中 - 很酷。

但是如果你想指定这个食谱属于那个食谱(或其他什么)你怎么做?

您是否应该在Yaml代码中手动指定cookbook.idrecipe.cookbook_id的值? (只是一个猜测 - 指南没有显示那样的东西。)或者是否有更合适的方式?

2 个答案:

答案 0 :(得分:57)

您应该使用命名的灯具,它会为您自动生成您不提供的ID码。这些id号基本上是你使用的任何字符串的整数哈希值。如果您引用了命名版本,请不要添加“_id”:

# recipes.yml
chicken_soup:
  cookbook: my_recipes

# cookbooks.yml
my_recipes:
  title: My Test Cookbook

答案 1 :(得分:3)

此外,如果您希望拥有多对多关联(HABTM),您只需为夹具中的关联提供一个数组:

# recipes.yml
chicken_soup:
  cookbooks: [my_recipes, another_recipe]
相关问题