В FactoryBot появляется ошибка: «Уровень стека слишком глубокий» при создании ассоциации HABTM - PullRequest
0 голосов
/ 03 марта 2020

Я пытаюсь установить связь HABTM между двумя моделями, Master и Genre. Каждая попытка из предложений в документации и из stackoverflow выдает ошибку SystemStackError: stack level too deep

Фабрики определяются следующим образом:

  factory :master do
    title        { 'Master title' }
    release_type { 'Album' }

    artist
    contributor
   end

И

  factory :genre do
    name { 'Blues' }

    master
  end

У меня есть пробовал различные примеры добавления отношения HABTM в мастер-фабрику, но все возвращают ошибку «слишком большой уровень стека».

К ним относятся

genres { create_list(:genre, 5) }

genres { [association(:genre)] }

transient do
  genres_count { 2 }
end

after(:create) do |master, evaluator|
 create_list(:genre, evaluator.genres_count, masters: [master])
end

Если я не включу один из приведенных выше примеров в мастер-фабрику, тесты будут работать нормально, но не пройдут, когда ожидается, что несколько жанров будут принадлежать мастеру, как и ожидалось. Когда они включены, каждый тест занимает 3 минуты и завершается неудачно с описанной выше ошибкой.

Любые предложения будут с благодарностью приняты 10

...