Я использую консоль rails в среде разработки и хочу использовать фабрики. Как я могу получить к ним доступ?
Я пробовал, require "FactoryGirl"
что возвращается
1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl
Я использую консоль rails в среде разработки и хочу использовать фабрики. Как я могу получить к ним доступ?
Я пробовал, require "FactoryGirl"
что возвращается
1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl
rails c
затем сделатьrequire 'factory_bot'
Ответы:
Чтобы решить эту проблему, убедитесь, что заводской бот-гем указан в вашем Gemfile аналогично этому
group :development, :test do
gem 'factory_bot_rails'
end
Тогда bundle install
.
Это должно сделать класс FactoryBot доступным в консоли разработки.
Надеюсь это поможет.
gem 'factory_girl_rails', :require => false
вызовет ошибки у всех, кто пытается настроить среду разработки с нуля, будьте осторожны.
rails console test
: он позволит вам создать консоль в тестовой среде, поэтому вам не нужно обновлять Gemfile, чтобы использовать тестовый пакет в среде разработки,
Я делаю это следующим образом:
Запустите консоль rails в тестовой среде в режиме песочницы.
rails console -e test --sandbox
Вам это нужно по двум причинам:
Затем в консоли:
Требуется FactoryBot (назывался FactoryGirl):
require 'factory_bot'
Загрузите заводские определения:
FactoryBot.find_definitions
Включите методы FactoryBot, чтобы избежать префикса всех вызовов FB с FactoryBot
( create
вместо FactoryBot.create
):
include FactoryBot::Syntax::Methods
PS Для изготовления гема вы можете загрузить определения в консоль рельсов с помощью:
Fabrication.manager.load_definitions
Также, require 'faker'
если вы его используете.
require 'ffaker'
?
fixture_file_upload
проблемой неопределенного метода , которая была вызвана отсутствием ActionDispatch::TestProcess
модуля, поэтому вы можете подумать о том, чтобы включить его также
require "factory_bot_rails"; include FactoryBot::Syntax::Methods; require 'ffaker'
rails c -e test --sandbox
Вам нужно require 'factory_bot_rails'
, а это настоящий гем, который используется Rails. Этот драгоценный камень будет включать в себя библиотеку Factory Bot, которая станет FactoryBot
доступной.
Вы можете сделать это или обновить свой Gemfile, чтобы он требовался при запуске, как в ответе баранины.
require 'faker'
.