У мене є простий factories.rb
подобається це:
FactoryGirl.define do
factory :book_category do
sequence(:name) { |n| "Cateogry #{n}" }
end
factory :book do
sequence(:title) { |n| "Book #{n}" }
end
end
Після того, як я запускаю модель генератора rails g model categorization book:references category:references
мій файл закінчується так:
FactoryGirl.define do factory :categorization do
book nil
category nil
end
factory :post_category do
sequence(:name) { |n| "Cateogry #{n}" }
end
factory :book do
sequence(:title) { |n| "Book #{n}" }
end
end
Це відбувається після кожного покоління моделі.
Також, якщо я створюю фабрику перед створенням aмодель, а потім запустити генератор для створення моделі дає помилку, кажучи щось подібне "завод вже існує". Так що я повинен чекати, поки я генерувати модель, перш ніж додати завод.
Це помилка?
Я використовую рейки 4.2.4 і factory_girl_rails 4.5.0.
Редагувати: Я спробував видалити все з factories.rb
файл і просто додайте це:
FactoryGirl.define do
end
Після спроби створити модель заводу за допомогою команди rails g factory_girl:model book
, ось що я закінчив:
FactoryGirl.define do factory :book do
end
end
Відповіді:
0 для відповіді № 1Я думаю, що це має щось відношення до символів пробілів, які є у вашому файлі factory.rb. Оскільки вона походить від джерела (https://github.com/thoughtbot/factory_girl_rails/blob/master/lib/generators/factory_girl/model/model_generator.rb#L46), він вставляє код після символу "n".
Переконайтеся, що у вас немає непарних символів, можливо, навіть регенерувати файли фабрик rails g factory_girl:model
.