Как использовать фабрики от FactoryGirl в консоли rails


Я использую консоль rails в среде разработки, и я хочу использовать фабрики. Как я могу получить к ним доступ?

Я пробовал require "FactoryGirl" возвращает

1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl
3 63

3 ответа:

чтобы решить эту проблему, убедитесь, что заводской бот gem указан в вашем Gemfile аналогично этому

group :development, :test do
  gem 'factory_bot_rails'
end

затем bundle install.

это должно сделать класс FactoryBot доступным в консоли разработки.

надеюсь, что это помогает.

Я делаю это следующим образом:

  • запустите консоль rails в тестовой среде в режиме песочницы.

    rails console test --sandbox
    

вам это нужно по двум причинам:

  1. любые изменения не откатываются.
  2. если у вас уже есть некоторые исходные данные, может случиться так, что фабрики начнут сериализацию атрибутов с 1, но эти записи могут уже существовать.

затем в консоль:

  • требуется FactoryBot (называлась FactoryGirl):

    require 'factory_bot'
    
  • загрузите заводские определения:

    FactoryBot.find_definitions
    
  • включите методы FactoryBot, чтобы избежать префикса всех вызовов FB с FactoryBot (create вместо FactoryBot.create):

    include FactoryBot::Syntax::Methods
    

P. S. Для изготовление вы можете загрузить определения в консоли rails с:

Fabrication.manager.load_definitions

и require 'faker' если вы используете его.

вам нужно require 'factory_girl_rails', который является фактическим драгоценным камнем, который используется рельсами. Эта жемчужина будет включать в себя библиотеку Factory Girl, что делает FactoryGirl доступной.

вы можете либо сделать это, либо обновить свой Gemfile, чтобы потребовать его при запуске, как в ответе muttonlamb.