1

API Dockによると、ActiveRecord::Associations::AssociationProxy現在は「非推奨または移動」されています。このクラスに何が起こったのか知りたいです。それが実際に存在しなくなった場合、Railsは現在どのように関連付けを処理しますか?このサイトの他のいくつかの投稿(このような)によると、AssociationProxyなどの構文を許可するために必要ですUser.find(1).groups << Group.find_by_id(13)

4

1 に答える 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 に答える