我在开发环境中使用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'
Answers:
要解决此问题,请确保在您的Gemfile中指定了工厂bot gem,与此类似
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对于人造宝石,您可以使用以下命令在rails控制台中加载定义:
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