У меня проблемы с заполнением базы данных с использованием seed.rb
, особенно когда речь идет о табличных отношениях.
Вот пример кода:
# seed.rb
user = User.find_or_create_by_login(
:login => "myname",
:email => "myname@gmail.com",
:user_type => "Admin",
:password => "admin",
:password_confirmation => "admin")
project = Project.find_or_create_by_user_id(
:user_id => user.id,
:name => "Test Project")
Когда проект создается (наряду с другими несвязанными параметрами, которые я пропустил сверху), user_id пуст. Как я могу заставить это работать?
Это самое странное поведение, которое я видел в такой простой вещи. В моем начальном файле у меня создается около восьми таблиц, и некоторые из них имеют глубину 3-4 уровня (то есть проекты пользователя has_many; проекты задачи has_many и т. Д.).
Когда я вызываю пользователя user
, как указано выше, и ссылаюсь на user.id
несколько раз после этого, он работает только один раз! Я пытался добавить [user.reload] перед созданием каждой новой записи, но безрезультатно. Я не думаю, что это будет иметь смысл для кого-либо, но есть ли здесь какие-либо возможности? Спасибо всем.