我为模型定义了以下工厂:
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
after create block似乎运行文件,并且工厂返回带有正确/新更改的模型对象,但这不会在我的测试数据库中保留。
即。如果我从我的测试中调用Page.last.post.user.id
,我仍然会获得在创建块之前的早期分配给post对象工厂的旧用户ID。我不确定为什么会这样。
答案 0 :(得分:2)
您的after :create
回调应该真正更新post
对象,但是,您在save!
对象上调用了page
。
尝试致电model.post.save!
直接在user_id
上保存post
列。