Как создать категорию и подкатегорию с помощью rake db: seed - PullRequest
1 голос
/ 03 апреля 2012

Я пытаюсь заполнить мое приложение rails 3 и столкнулся с проблемой.Моя таблица категорий имеет следующие поля:

строка "имя" целое число "позиция" целое число "parent_id"

parent_id - это идентификатор другой категории для nested_set.

Seeds.rb

Category.delete_all  
Category.create(:name => "Category 1",
              :position => 1,
              :parent_id => nil )

Category.create(:name => "Subcategory 1",
              :position => 1,
              :parent_id => 1 )

Когда я запускаю

rake db:seed

Я получаю ошибку:

rake aborted!
Couldn't find Category with id=1

Tasks: TOP => db:seed
(See full trace by running task with --trace)

Итак, как мне создатьсначала категория, так что ID 1 будет доступен?

Ответы [ 3 ]

3 голосов
/ 03 апреля 2012

Проблема с вашей версией не в том, что она создается не по порядку, а в том, что автоинкремент не сбрасывается, поэтому ему не присваивается идентификатор 1.

Попробуйте:

Category.delete_all
first_category = Category.create(:name => "Category 1",
          :position => 1,
          :parent_id => nil )
second_category = Category.create(:name => "Subcategory 1",
          :position => 1,
          :parent_id => first_category.id )
2 голосов
/ 03 апреля 2012
Category.delete_all  
parent = Category.create(:name => "Category 1",
              :position => 1,
              :parent_id => nil )

Category.create(:name => "Subcategory 1",
              :position => 1,
              :parent => parent )
1 голос
/ 03 апреля 2012

Просто используйте :parent_id => Company.first вместо :parent_id => 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...