【发布时间】:2014-11-11 04:38:44
【问题描述】:
设置:
我们将每个工厂保存在一个单独的文件中,并将它们分组到目录中以匹配我们的模型目录结构。我们也使用 mongo,我们的许多关系都是embeded_in,而不是典型的has_many 或belongs_to。
问题:
当工厂需要引用另一个在 alpha 顺序中较晚的工厂时,工厂女孩会抛出 Factory not registered 错误。
示例:
# spec/factories/cat.rb
FactoryGirl.define do
factory :cat do
name 'fluffy'
kittens [FactoryGirl.build(:kitten), FactoryGirl.build(:kitten)]
end
end
# spec/factories/kitten.rb
FactoryGirl.define do
factory :kitten do
name 'mittens'
age_in_months 2
end
end
由于cat 工厂是在kitten 工厂女孩引发Factory not registered 错误之前加载的。
问题
如何强制工厂女孩遍历所有文件,只检查文件定义的工厂名称,而不关心它依赖的其他工厂?
是的,我知道我可以将kitten 工厂与cat 工厂放在同一个文件中,我也知道我可以将kitten.rb 重命名为a_kitten.rb 来解决这个问题。我宁愿不做任何一个。还有其他解决方案吗?
【问题讨论】:
标签: ruby-on-rails mongoid factory-bot