我有这个文件夹结构:
.
spec
factories
category.rb
service.rb
但是当我从服务中调用类别时,我收到Trait not registered
错误,因为在category.rb
之前未加载service.rb
。
我想在服务中写这个:
require_relative 'category'
会有效,但有一种更简单的方法可以做到这一点,因为我必须在每个文件中require_relative
并在每个文件中多次,因为每个模型都有很多关联。
我不能做我在上一段中提到的事情:
require_relative 'category'
FactoryGirl.define do
factory :service do
category
end
end
结果:
Factory already registered: category (FactoryGirl::DuplicateDefinitionError)
答案 0 :(得分:0)
在我的问题中没有提到,所以这个答案无法从我的问题中推断出来,我发帖完成。
问题是我正在使用zeus服务器,我重新启动了zeus服务器并且工作正常。
答案 1 :(得分:-1)
在我看来,解决方案也是一种更好的做法,就是将所有工厂放在一个文件中,而不是单独的文件。
实际上,如果工厂不是太多,我们不需要太多工厂档案。
将所有定义移至spec/factories.rb
,然后删除目录和文件spec/factories
。