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