Подтвердить что ты не робот

Rails fixtures - как вы устанавливаете внешние ключи?

Я читаю о светильниках Rails в этом guide (спасибо, trevorturk). Кажется, вы определяете классы в файле Yaml, и они автоматически загружаются в test DB - cool.

Но если вы хотите указать, что этот рецепт принадлежит этой кулинарной книге (или что-то еще), как вы это делаете?

Предполагаете ли вы указать значения для cookbook.id и recipe.cookbook_id вручную в коде Yaml? (Просто догадка - руководство не показывает ничего подобного.) Или есть более подходящий способ?

4b9b3361

Ответ 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]