Factory_Girl& CanCan:避免唯一性错误

时间:2011-10-17 21:26:17

标签: ruby-on-rails factory-bot cancan

我有一个带有CanCan'角色'模型的rails应用程序。角色有一个“名称”字段,可以通过调用来确定用户的权限级别。

在工厂女孩中,我有很多与“角色”领域相关联的模型;一些深度的迭代。例如:('账户'工厂与'购买'工厂有关联,该工厂与'用户'工厂有关联,与'角色'有关联)

问题是,如果我调用两个最终与'role'关联的工厂,则第二个调用将失败该角色的唯一性验证 - >'name'字段。通常唯一性验证不是问题 - 我只是将有问题的属性设置为序列......但我不能在这里做到 - 角色的名称必须是特定的,以便康康功能。

那么......我该如何解决这个问题?

1 个答案:

答案 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)