我维护了一个包含数十个模型类和它们之间的各种关系的大型Rails 4.1代码库。我最近在ActiveRecord
/ inverse_of
关系(实际上是has_one关系)上发现了has_many
belongs_to
约束。我的模型中的这些关系目前都没有inverse_of
强制实施,但由于我在4.1,我假设Rails会自动推断出这些关系。但是现在添加inverse_of
关系会导致任何失败吗?
我只能想到没有inverse_of
的场景,如果我们以不同方式编辑它们并尝试保存它们,则引用同一基础记录的对象的两个不同实例可能是不一致的状态。但是当所有引用引用相同的实例时,是否有一个警告?
可以部分应用inverse_of - 仅针对某些has_many
/ belongs_to
关系,而不是其他关系,会导致问题吗?
答案 0 :(得分:1)
来自文档:
Rails现在可以自动检测反向关联。如果你不 在关联上设置:inverse_of选项,然后Active Record将 猜测基于启发式的逆关联。
有一些限制:inverse_of支持:
不适用于:通过关联。
不适用于:多态关联。
belongs_to关联has_many的反向关联将被忽略。