我是新來的工廠女孩。我想創建一個屬於成員資格和股權工廠的共享工廠(以便兩者都與同一個組實例關聯)。我試圖按照以下方式編寫我的Share工廠,而不是使用關聯方法來避免將創建共享的回調。在之前使用瞬態屬性(:create)回調
factory :share do
transient do
same_group
end
before(:create) do |share, evaluator|
stake = create(:shareless_stake, group: evaluator.same_group)
member = create(:shareless_membership, group: evaluator.same_group)
share.stake = stake
share.membership = member
end
end
然後我想創建分享這樣的:
share = create(:share, same_group: create(:group))
我得到一個錯誤說,「same_group」特質沒有被註冊。當我創建一個特性,或者通過這個名稱在Group工廠下創建一個工廠時,它會抱怨對於構建的Share實例沒有'group ='setter方法。
我很困惑,因爲它看起來像factory_girl試圖對待我的瞬態屬性作爲共享,我不想要的實際屬性。我只想讓same_group成爲一個Group實例的變量,我可以將它傳遞給before(:create)塊。我究竟做錯了什麼?