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