Używam konsoli rails w środowisku programistycznym i chcę korzystać z fabryk. Jak mogę uzyskać do nich dostęp?
Próbowałem, require "FactoryGirl"
który powraca
1.9.3p393 :301 > require "FactoryGirl"
LoadError: cannot load such file -- FactoryGirl
ruby-on-rails
factory-bot
Eric Baldwin
źródło
źródło
rails c
a potem zrobićrequire 'factory_bot'
Odpowiedzi:
Aby rozwiązać ten problem, upewnij się, że fabryczny klejnot bota jest określony w twoim pliku Gemfile podobnie do tego
group :development, :test do gem 'factory_bot_rails' end
Wtedy
bundle install
.Powinno to spowodować udostępnienie klasy FactoryBot w konsoli programistycznej.
Mam nadzieję że to pomoże.
źródło
gem 'factory_girl_rails', :require => false
wyrzucać błędy dla każdego, kto próbuje skonfigurować środowisko programistyczne od zera, uwaga.rails console test
, pozwoli ci stworzyć konsolę w środowisku testowym, więc nie musisz aktualizować swojego Gemfile, aby używać pakietu testowego w środowisku programistycznymRobię to w następujący sposób:
Uruchom konsolę rails w środowisku testowym w trybie piaskownicy.
rails console -e test --sandbox
Potrzebujesz tego z dwóch powodów:
Następnie w konsoli:
Wymagaj FactoryBot (nazywał się FactoryGirl):
require 'factory_bot'
Załaduj definicje fabryczne:
FactoryBot.find_definitions
Uwzględnij metody FactoryBot, aby uniknąć przedrostków wszystkich wywołań FB z
FactoryBot
(create
zamiastFactoryBot.create
):include FactoryBot::Syntax::Methods
PS W przypadku klejnotu produkcyjnego możesz załadować definicje w konsoli szyn za pomocą:
Fabrication.manager.load_definitions
Również
require 'faker'
jeśli go używasz.źródło
require 'ffaker'
?fixture_file_upload
problem, który został spowodowany przez brakActionDispatch::TestProcess
modułu, więc można rozważyć włączenie go równieżrequire "factory_bot_rails"; include FactoryBot::Syntax::Methods; require 'ffaker'
rails c -e test --sandbox
Musisz
require 'factory_bot_rails'
, czyli prawdziwy klejnot używany przez Railsy. Ten klejnot będzie zawierał bibliotekę Factory Bot,FactoryBot
udostępniając ją.Możesz to zrobić lub zaktualizować plik Gemfile, aby wymagał go przy starcie, jak w odpowiedzi baraniny.
źródło
require 'faker'
.