我需要的是一個Factory.define塊內部的方法,以知道是否使用create或build來調用工廠,顯式地或簡單地使用默認策略。工廠女孩:創建vs構建,需要不同的行爲
我有一個工廠,必須手動調整代碼的原作者遠離軌道,正常創建barfs和正常生成可以管理的關聯。我不想在構建案例中調整這些關聯,但我必須在創建案例中。
我一直在尋找是否有類似'current_strategy'的東西,但我還沒有看到任何東西。我知道我可以使用after_create和after_build來區分,但是原作者是這樣做的,以便在不進行調整的情況下保存對象的行爲會導致巨大的不快 - 將異常和垃圾保存在數據庫中。
我目前沒有權限修復他寫的「模型」,現有的rspec測試使用差異化來隨時做正確的事情。在任何情況下,以前的測試作者都選擇不使用create,這意味着設置大部分測試數據是一個神祕而漫長的過程。
任何幫助深表感謝 - 我仍然行使我的GoogleFu但很想成爲短路......
哦,這是在梁2(/哭)
的感謝!
絕對是最好的方法。我的挑戰在於,模型的組織方式是,雖然他們有聯繫,但在特定的中心創建新的聯繫並不起作用。你必須把這個東西稱爲create_standard和new_standard,它把所有東西都建立起來並粘合在一起。此外,儘管他有關聯,但他通過手動將幾個相關對象的每個ID設置爲相同的值來將模型鏈接在一起。他有一個他寫的允許他設置ID的本土插件。他做得太多了...... – jaydel 2012-01-06 16:53:03
這些都是最初用Rails編寫的,或者是從另一個代碼庫(我試圖讓一些瘋狂的東西變得有意義)轉換成的?聽起來像一場噩夢。希望它不是一個明確的混淆嘗試(從長遠來看,這對真正的好處是沒有益處)。 – jefflunt 2012-01-06 18:00:08
有沒有希望得到*爲什麼它以這種方式實現的原因,以便以更有用的方式重構它?你是從頭開始的,還是這是你熟悉的整體設計決策的代碼基礎? – jefflunt 2012-01-06 18:02:10