根据 API Dock,ActiveRecord::Associations::AssociationProxy
现在已“弃用或移动”。我很好奇这堂课发生了什么。如果它真的不再存在,Rails 现在如何处理关联?根据该站点上的其他几篇文章(例如这个),AssociationProxy
对于允许诸如User.find(1).groups << Group.find_by_id(13)
.
问问题
200 次
1 回答
2
根据版本 3.1.0 的 ActiveRecord 更改日志:
ActiveRecord::Associations::AssociationProxy 已拆分。现在有一个 Association 类(和子类)负责对关联进行操作,然后是一个名为 CollectionProxy 的单独的瘦包装器,它代理集合关联。
这可以防止命名空间污染,分离关注点,并允许进一步重构。
奇异关联(has_one、belongs_to)根本不再有代理。他们只是返回相关的记录或 nil。这意味着您不应该使用未记录的方法,例如 bob.mother.create - 请改用 bob.create_mother。
于 2012-09-10T16:18:07.387 回答