Estoy usando la consola rails en el entorno de desarrollo y quiero usar fábricas. ¿Cómo puedo acceder a ellos?
He probado require "FactoryGirl"
que devuelve
1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl
ruby-on-rails
factory-bot
Eric Baldwin
fuente
fuente
rails c
luego hacer unrequire 'factory_bot'
Respuestas:
Para resolver este problema, asegúrese de que la gema del bot de fábrica esté especificada en su Gemfile de manera similar a esta
group :development, :test do gem 'factory_bot_rails' end
Entonces
bundle install
.Esto debería hacer que la clase FactoryBot esté disponible en la consola de desarrollo.
Espero que esto ayude.
fuente
gem 'factory_girl_rails', :require => false
generará errores para cualquiera que intente configurar un entorno de desarrollo desde cero, tenga cuidado.rails console test
, le permitirá crear una consola en el entorno de prueba para que no necesite actualizar su Gemfile para usar un paquete de prueba en el entorno de desarrolloHago esto de la siguiente manera:
Inicie la consola de rieles en el entorno de prueba en modo sandbox.
rails console -e test --sandbox
Necesita esto por dos razones:
Luego en la consola:
Requieren FactoryBot (se llamaba FactoryGirl):
require 'factory_bot'
Cargue las definiciones de fábrica:
FactoryBot.find_definitions
Incluya los métodos FactoryBot para evitar prefijar todas las llamadas a FB con
FactoryBot
(encreate
lugar deFactoryBot.create
):include FactoryBot::Syntax::Methods
PD Para la gema de fabricación , puede cargar las definiciones en la consola de rieles con:
Fabrication.manager.load_definitions
También
require 'faker'
si lo usas.fuente
require 'ffaker'
?fixture_file_upload
problema de método indefinido , causado por la ausencia deActionDispatch::TestProcess
módulo, por lo que podría considerar incluirlo tambiénrequire "factory_bot_rails"; include FactoryBot::Syntax::Methods; require 'ffaker'
rails c -e test --sandbox
Es necesario
require 'factory_bot_rails'
, que es la gema real que está utilizando Rails. Esa joya incluirá la biblioteca Factory Bot, queFactoryBot
estará disponible.Puede hacer esto o actualizar su Gemfile para requerirlo al inicio como en la respuesta de muttonlamb.
fuente
require 'faker'
.