2
我有一個CanCan'角色'模型的Rails應用程序。角色有一個「名稱」字段,可以掃描調用以確定用戶的權限級別。Factory_Girl&CanCan:避免唯一性錯誤
在工廠女孩,我有很多與'角色'字段關聯的模型;一些很深的迭代。例如:('帳戶'工廠與'採購'工廠有關聯,與'用戶'工廠有關聯,與'角色'有關聯)
問題是,如果我打電話給兩個最終與'角色'關聯的工廠,第二個被調用的工廠將無法對該角色進行唯一性驗證 - >'名稱'字段。通常,唯一性驗證不是問題 - 我只是將有問題的屬性設置爲序列...但我無法在此處完成此任務 - 角色的名稱必須專用於cancan功能。
那麼......我該如何解決這個問題?
歡呼聲回覆。可能是的,但是很多工廠都是深嵌的。因此,例如,如果我想創建一個「註冊」工廠,則必須創建一個角色工廠,然後創建一個角色集的用戶工廠,然後創建一個用戶設置的採購工廠,然後創建該採購的註冊組。 – PlankTon
嗯,如果你有一個角色列表,並且當一個角色被創建時它會將'.pop'從列表中刪除?或者如果你只是在你的'Factories.rb'中編寫一個方法(而不是工廠),在必要時(在工廠)返回相關角色以防止重複? – jefflunt
像這裏提到的解決方案(http://stackoverflow.com/a/7213281/241232)可能會適合需要。唯一的問題是,開發人員需要記住在定義需要角色的新工廠時使用該方法。 – BBonifield