Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails装置--如何设置外键?_Ruby On Rails_Unit Testing_Testing_Tdd_Fixtures - Fatal编程技术网

Ruby on rails Rails装置--如何设置外键?

Ruby on rails Rails装置--如何设置外键?,ruby-on-rails,unit-testing,testing,tdd,fixtures,Ruby On Rails,Unit Testing,Testing,Tdd,Fixtures,我在这篇文章中读到了Rails固定装置(谢谢,trevorturk)。看起来您在Yaml文件中定义了类,它们会自动加载到testDB--cool中 但是如果你想指定这个食谱属于那本烹饪书(或其他什么),你怎么做呢 您是否应该在Yaml代码中手动指定cookbook.id和recipe.cookbook\u id的值?(只是一个猜测——指南中没有显示类似的内容。)或者有更合适的方法吗?您应该使用命名装置,它会自动为您生成一个id号,而您不提供id号。这些id号本质上是您使用的任何字符串的整数散列。

我在这篇文章中读到了Rails固定装置(谢谢,trevorturk)。看起来您在Yaml文件中定义了类,它们会自动加载到
test
DB--cool中

但是如果你想指定这个食谱属于那本烹饪书(或其他什么),你怎么做呢


您是否应该在Yaml代码中手动指定
cookbook.id
recipe.cookbook\u id
的值?(只是一个猜测——指南中没有显示类似的内容。)或者有更合适的方法吗?

您应该使用命名装置,它会自动为您生成一个id号,而您不提供id号。这些id号本质上是您使用的任何字符串的整数散列。如果正在引用命名版本,请不要添加“\u id”:

# recipes.yml
chicken_soup:
  cookbook: my_recipes

# cookbooks.yml
my_recipes:
  title: My Test Cookbook

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

# recipes.yml
chicken_soup:
  cookbooks: [my_recipes, another_recipe]

哇,这比我想象的要简单得多:)我在尝试一些愚蠢的东西,比如
客户端id:
(这显然不起作用)。如果你有一个与对象不同的id(例如my_cookbook_id),你可以这样指定对象的类:
my_cookbook:my_recipes(cookbook)