2012-04-24 4 views
1

ある場合:embeds_many :foos依存=>:embeds_manyで破壊が必要ですか?

:dependent => :destroyは必要ですか?または、親要素を破壊する場合。すべてfoosは自動的に削除されますか?

私は、コンソール上でFooをチェックしますが、取得しよう:

Mongoid::Errors::InvalidCollection: Access to the collection for Foo is not allowed since it is an embedded document, please access a collection from the root document. 

答えて

3

組み込みドキュメントを直接アクセスすることはできません。それらは親ドキュメントに含まれており、親を通してしかアクセスできません。親ドキュメントを破棄すると、埋め込みドキュメントも一緒に削除されますが、埋め込みドキュメントを破棄するためのコールバックがある場合は、cascade_callbaksを参照してください。

+0

http://mongoid.org/en/mongoid/v3/relations.htmlをご覧ください。彼は依存関係を使用しています:has_many:albums、dependent::delete、belongs_to:ラベル、依存::無効。埋め込みドキュメントが自動的に破棄された場合、なぜ依存関係が削除され無効になるのですか?無効にするものは何もありません。 – Donato

+0

has_manyとbelongs_toは埋め込みリレーションではないので、これらのリレーションはリレーションシップに属しています。 – rubish

関連する問題