Ich verwende die Rails-Konsole in der Entwicklungsumgebung und möchte Fabriken verwenden. Wie kann ich darauf zugreifen?
Ich habe versucht, require "FactoryGirl"
welche zurückkehrt
1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl
ruby-on-rails
factory-bot
Eric Baldwin
quelle
quelle
rails c
dann beginnenrequire 'factory_bot'
Antworten:
Um dieses Problem zu lösen, stellen Sie sicher, dass der Factory-Bot-Edelstein in Ihrem Gemfile ähnlich wie dieser angegeben ist
Dann
bundle install
.Dadurch sollte die FactoryBot-Klasse in der Entwicklungskonsole verfügbar sein.
Hoffe das hilft.
quelle
gem 'factory_girl_rails', :require => false
führt zu Fehlern für alle, die versuchen, die Entwicklungsumgebung von Grund auf neu einzurichten.rails console test
: Sie können eine Konsole in der Testumgebung erstellen, sodass Sie Ihre Gemfile nicht aktualisieren müssen, um ein Testpaket in der Entwicklungsumgebung zu verwendenIch mache das folgendermaßen:
Starten Sie die Rails-Konsole in der Testumgebung im Sandbox-Modus.
Sie benötigen dies aus zwei Gründen:
Dann in der Konsole:
Benötige FactoryBot (hieß FactoryGirl):
Laden Sie die Factory-Definitionen:
Fügen Sie die FactoryBot-Methoden hinzu, um zu vermeiden, dass allen Aufrufen von FB
FactoryBot
(create
anstelle vonFactoryBot.create
) Folgendes vorangestellt wird :PS Für die Herstellung von Edelsteinen können Sie die Definitionen in die Schienenkonsole laden mit:
Auch
require 'faker'
wenn Sie es benutzen.quelle
require 'ffaker'
?fixture_file_upload
festgestellt, das durch das Fehlen einesActionDispatch::TestProcess
Moduls verursacht wurde. Sie können es also auch in Betracht ziehenrequire "factory_bot_rails"; include FactoryBot::Syntax::Methods; require 'ffaker'
rails c -e test --sandbox
Sie müssen
require 'factory_bot_rails'
, welches der eigentliche Edelstein ist, der von Rails verwendet wird. Dieses Juwel wird die Factory Bot-Bibliothek enthalten, die zurFactoryBot
Verfügung gestellt wird.Sie können dies entweder tun oder Ihre Gemfile so aktualisieren, dass sie beim Start wie in der Antwort von Hammellamb erforderlich ist.
quelle
require 'faker'
.