我有一个带有CanCan'角色'模型的rails应用程序。角色有一个“名称”字段,可以通过调用来确定用户的权限级别。
在工厂女孩中,我有很多与“角色”领域相关联的模型;一些深度的迭代。例如:('账户'工厂与'购买'工厂有关联,该工厂与'用户'工厂有关联,与'角色'有关联)
问题是,如果我调用两个最终与'role'关联的工厂,则第二个调用将失败该角色的唯一性验证 - >'name'字段。通常唯一性验证不是问题 - 我只是将有问题的属性设置为序列......但我不能在这里做到 - 角色的名称必须是特定的,以便康康功能。
那么......我该如何解决这个问题?
答案 0 :(得分:1)
您可以预先创建所有角色,然后根据需要在测试中查找它们吗?
如果没有,您可以在该特定测试中创建所需的角色,然后将其传递到工厂吗?
admin_role = Factory.create(:role, :role_name => "administrator")
Factory.create(:user, :login => "joe", :role => admin_role)
Factory.create(:user, :login => "jane", :role => admin_role)