2016-04-27 53 views
5

我有一個模型定義了以下工廠:Rspec/FactoryGirl:工廠中的更改未保存在測試數據庫中?

factory :page do 
    association :user, factory: :standard_user 
    association :post, factory: [:short_post] 
    after :create do |model| 
    model.post.user = model.user 
    model.save! 
    end 
end 

在創建塊之後似乎運行文件和工廠返回模型對象與正確的/新變化,然而,這並不在我的測試數據庫中持久。

即。如果我在我的測試中調用Page.last.post.user.id,我仍然會獲得舊的用戶標識,該用戶標識在after create塊之前被分配給發佈對象工廠。我不知道爲什麼會發生這種情況。

回答

2

您的after :create回調應該確實在更新post對象,但是,您在page對象上調用save!對象。

嘗試撥打model.post.save!直接將user_id列保存到post