为什么Ruby on Rails的AssociationProxy被弃用了,取而代之的是什么?

时间:2012-09-10 14:58:38

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

根据API Dock,ActiveRecord::Associations::AssociationProxy现在已“弃用或移动”。我很好奇这堂课发生了什么。如果它真的不复存在,Rails现在如何处理关联?根据此网站上的其他几篇文章(例如this one),AssociationProxy是允许User.find(1).groups << Group.find_by_id(13)等语法所必需的。

1 个答案:

答案 0 :(得分:2)

根据ActiveRecord 3.1.0版的更新日志:

  
      
  • ActiveRecord :: Associations :: AssociationProxy已被拆分。现在有一个Association类   (和子类)负责操作关联,然后单独,   名为CollectionProxy的瘦包装器,它代理集合关联。

         

    这可以防止命名空间污染,分离关注点,并允许进一步重构。

         

    奇异关联(has_one,belongs_to)根本不再有代理。他们只是回来了   相关记录或零。这意味着您不应该使用未记录的方法   如bob.mother.create - 请改用bob.create_mother。

  •