【问题标题】:Rails Guide: Association Basics, inverse_of relationships, failure to understand outcome of self testsRails 指南:关联基础、inverse_of 关系、无法理解自测结果
【发布时间】:2012-09-01 11:05:12
【问题描述】:

我对 Rails 并不完全陌生,但我正在通过一个探索性 repo 中的所有基本指南再次通过,我一直在使用它来刷新自己的知识。

我现在在这个:http://guides.rubyonrails.org/association_basics.html

我进入了“3.5 双向关联”部分。

我知道在同一进程中以两种不同的方式访问模型实例时可能会重复和不同步,这是我想确保我学会如何避免的事情。

所以我写了一个简单的单元测试来检测这个提交中的问题: https://github.com/BadQuanta/simple-rails/commit/5e88ff08d5ba2743c4dbcaa0479e9adc8edc2a1f

单元测试似乎有效,因为它失败并出现了我预期的错误。

所以我实施了本次提交中指南规定的修复: https://github.com/BadQuanta/simple-rails/commit/7ac75b45730e3230162b8da280ba713004b8745c

但我的单元测试仍然没有通过,我不知道为什么。

所以我对我的单元测试做了这个,我有点难过,因为这正是我认为我不必与这些关系做的事情: https://github.com/BadQuanta/simple-rails/commit/7ac75b45730e3230162b8da280ba713004b8745c

基本上,我该怎么做才能弄清楚我做错了什么?

【问题讨论】:

  • 如果比较 c.object_ido.customer.object_id 会怎样?
  • 我知道,然后你就可以回答了。除非您保存/重新加载,否则值会有所不同
  • 所以,我当时没有得到指南,因为它似乎没有给你一个什么时候使用它的例子。由于has_many 和belongs_to 是我的大部分关系......我只是感到困惑。我现在继续前进,然后就这样了。

标签: ruby-on-rails ruby associations relationships


【解决方案1】:

同样的准则:

inverse_of 支持有一些限制:

  • 它们不适用于 :through 关联。
  • 它们不适用于 :polymorphic 关联。
  • 它们不适用于 :as 关联。
  • 对于 belongs_to 关联,has_many 反向关联被忽略

那么为什么指南将它们用作示例

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    • 2013-04-12
    相关资源
    最近更新 更多