Rspec/FactoryGirl:工厂中的更改未保存在测试数据库中?

L45*_*457 5 rspec ruby-on-rails ruby-on-rails-4 factory-bot

我为模型定义了以下工厂:

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
Run Code Online (Sandbox Code Playgroud)

后创建块似乎运行文件,工厂返回带有正确/新更改的模型对象,但这不会在我的测试数据库中持久存在.

即.如果我Page.last.post.user.id从我的测试中调用,我仍然得到在创建块之前的早期分配给post对象工厂的旧用户ID.我不确定为什么会这样.

Ant*_*y E 4

您的after :create回调实际上应该更新post对象,但是,您正在调用save!您的page对象。

尝试直接调用model.post.save!以保存user_idpost