在Rails 4.2.1中,我有一个Book
模型。我还有BookAcl
模型,belongs_to
到Book
。在我的测试中,我通过tests/fixtures
中定义的灯具加载。在我的测试中,在setup
中,我基于fixture数据实例化两个对象。到目前为止一切正常。
在我的测试中,我修改了BookAcl对象,并期望在通过Book对象访问同一BookAcl时反映这些更改。然而,这没有发生。实际上,当我在BookAcl对象上查看(通过Pry)时,属性与Book.BookAcl对象不同,即使对象的其余部分相同。
我做错了什么?我如何强制这些更改通过对象图传播?
答案 0 :(得分:3)
致电#reload
。当前版本的Rails中没有Identity Map(他们认为它产生了太多错误),因此每当DB记录发生变化时,您应该通过调用#reload
手动重新获取所需的所有对象。