【发布时间】:2015-11-07 01:09:57
【问题描述】:
我的种子文件已加载到我的 test_helper 文件中。当我尝试通过工厂创建角色时,验证失败,因为它已经存在(由于种子文件)。但是,如果我使用在种子中创建的角色在工厂中创建关联角色...我会收到一个错误,因为工厂似乎是在种子文件之前启动的...工厂错误是因为它正在寻找的角色没有尚未创建。这很混乱。
此工厂无法通过唯一角色名称验证,因为已通过种子文件创建了角色。
FactoryGirl.define do
factory :account do
user
role
end
end
此工厂(调用 admin_account 作为关联)出错,因为尚未创建角色。
FactoryGirl.define do
factory :account do
user
trait :admin do
role Role.find_by_name("admin").id # Role "admin" should exist from the seed
end
factory :admin_account, traits: [:admin]
end
end
因此,如果我不使用种子文件,我的工厂将无法通过唯一性验证。如果我确实使用种子文件,工厂将无法为 nil:NilClass (NoMethodError) 抱怨未定义的方法“id”。
我做错了什么?
【问题讨论】:
标签: ruby-on-rails-4 factory-bot