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

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

Я пробовал require "FactoryGirl", который возвращает

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

Ответ 1

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

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

Тогда bundle install.

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

Надеюсь, что это поможет.

Ответ 2

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

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

    rails console test --sandbox
    

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

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

Затем в консоли:

  • Требовать FactoryGirl:

    require 'factory_girl'
    
  • Загрузите определения factory:

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

    include FactoryGirl::Syntax::Methods
    

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

Fabrication.manager.load_definitions

Также require 'faker', если вы его используете.

Ответ 3

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

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