Rails fixtures - как вы устанавливаете внешние ключи?
Я читаю о светильниках Rails в этом guide (спасибо, trevorturk). Кажется, вы определяете классы в файле Yaml, и они автоматически загружаются в test
DB - cool.
Но если вы хотите указать, что этот рецепт принадлежит этой кулинарной книге (или что-то еще), как вы это делаете?
Предполагаете ли вы указать значения для cookbook.id
и recipe.cookbook_id
вручную в коде Yaml? (Просто догадка - руководство не показывает ничего подобного.) Или есть более подходящий способ?
Ответы
Ответ 1
Вы должны использовать именованные элементы, которые автоматически генерируют номер идентификатора для вас, где вы его не предоставляете. Эти номера идентификаторов представляют собой целые хэши любой строки, которую вы используете. Не добавляйте "_id", если вы ссылаетесь на именованную версию:
# recipes.yml
chicken_soup:
cookbook: my_recipes
# cookbooks.yml
my_recipes:
title: My Test Cookbook
Ответ 2
Кроме того, если вы хотите иметь много-много ассоциаций (HABTM), вы просто даете массив для ассоциации в приборе:
# recipes.yml
chicken_soup:
cookbooks: [my_recipes, another_recipe]