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
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
rails ca 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.
gem 'factory_girl_rails', :require => falsewyrzucać 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 programistycznym
Robię 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( createzamiast FactoryBot.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.
require 'ffaker'?
fixture_file_uploadproblem, który został spowodowany przez brak ActionDispatch::TestProcessmoduł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, FactoryBotudostępniając ją.
Możesz to zrobić lub zaktualizować plik Gemfile, aby wymagał go przy starcie, jak w odpowiedzi baraniny.
require 'faker'.