ruby-on-rails - Rails fixture 中的更改不会传播到关联

标签 ruby-on-rails ruby testing fixtures

在 Rails 4.2.1 中,我有一个 Book 模型。我还有 BookAclbelongs_toBook 的模型。在我的测试中,我通过 tests/fixtures 中定义的 fixture 加载了这两个。在我的测试中,在 setup 中,我根据 fixture 数据实例化了两个对象。到目前为止,一切正常。

在我的测试中,我修改了 BookAcl 对象,并希望在通过 Book 对象访问同一个 BookAcl 时反射(reflect)这些更改。然而,这并没有发生。事实上,当我(通过 Pry)查看 BookAcl 对象时,其属性与 Book.BookAcl 对象不同,即使该对象的其余部分相同。

我做错了什么?我如何强制这些更改通过对象图传播?

最佳答案

调用#reload。没有 Identity Map在当前版本的 Rails 中(他们认为它产生了太多错误),因此您应该在数据库记录发生更改时通过调用 #reload 手动重新获取您想要的所有对象。

关于ruby-on-rails - Rails fixture 中的更改不会传播到关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31866118/

相关文章:

mysql - Rails - 按条件和限制排序?

html - Ruby on Rails-simple_form_for如何显示每个字段的错误

ruby - 如何以编程方式在Facebook Pages上发布(共享)YouTube视频?

java - 有哪些方法可以测试依赖于静态方法的方法?

java - 减少测试用例之间的耦合

ruby-on-rails - Rails 元标记,Rails 4 中未定义的方法 `set_meta_tags'

ruby-on-rails - 服务器文件通过 scp

ruby - 尝试在 Ruby 中设置实例变量

ruby-on-rails - acts_as_taggable_on tag_cloud 抛出未定义的方法 `empty?' 为 nil :NilClass

reactjs - 如何使用带有 Enzyme 的 react-redux hooks 测试组件?