2011-11-02 21 views
9

私はmongoidで最初のアプリケーションを構築していますが、埋め込みリソースの削除に問題があります。私はこれらのモデルを持っている:mongoidで埋め込みドキュメントを削除

class Article 
include Mongoid::Document 
field :body 
embeds_many :comments 

など。

class Comment 
include Mongoid::Document 
field :body 
embedded_in :article, :inverse_of => :comments 
end 

私は破壊する(または削除)を呼び出す記事

ruby-1.9.2-p290 :043 > @article.comments 
    => [#<Comment _id: 4eb0e991a27d201ded000038, _type: nil, body: "foo", score: nil>] 
    ruby-1.9.2-p290 :045 > @article.comments.first.destroy 
    => true 
    ruby-1.9.2-p290 :046 > @article.comments 
    => [] 
    ruby-1.9.2-p290 :047 > @article.save 
    => true 
    ruby-1.9.2-p290 :049 > @article.reload 
    => #<Article _id: 4eb0e991a27d201ded000037, _type: nil, body: "foo", title: .... 
    ruby-1.9.2-p290 :050 > @article.comments 
    => [#<Comment _id: 4eb0e991a27d201ded000038, _type: nil, body: "foo", score: nil>] 

からコメントを削除することはできませんなぜ私が理解していません埋め込まれたドキュメントは、メモリから削除されたように見えますが、dbから削除されません。どんな洞察も非常に高く評価されるでしょう!

+1

こんにちは私はレール3.2.3を使用して設定をチェックしました。あなたはこれに対する答えを見つけましたか? – Ben

+0

申し訳ありません - これはもう少し前のことでしたが、私はこのプロジェクトを追求しませんでした – chrispanda

答えて

0

あなたの宝石のバージョンとバージョンを投稿してください。 Gemfileの

Loading development environment (Rails 3.2.3) 
1.9.3-p0 :001 > @article = Article.new(:body => 'articleBodyText') 
=> #<Article _id: 4f9d90c7f15fefb3a0000001, _type: nil, body: "articleBodyText"> 
1.9.3-p0 :002 > @article.save 
=> true 
1.9.3-p0 :003 > @article.comments = [Comment.new(:body => 'commentBodyText')] 
=> [#<Comment _id: 4f9d90edf15fefb3a0000002, _type: nil, body: "commentBodyText">] 
1.9.3-p0 :004 > @article.save 
=> true 
1.9.3-p0 :005 > @article.comments 
=> [#<Comment _id: 4f9d90edf15fefb3a0000002, _type: nil, body: "commentBodyText">] 
1.9.3-p0 :006 > @article.reload 
=> #<Article _id: 4f9d90c7f15fefb3a0000001, _type: nil, body: "articleBodyText"> 
1.9.3-p0 :007 > @article.comments 
=> [#<Comment _id: 4f9d90edf15fefb3a0000002, _type: nil, body: "commentBodyText">] 
1.9.3-p0 :008 > @article.comments.first.destroy 
=> true 
1.9.3-p0 :009 > @article.comments 
=> [] 
1.9.3-p0 :010 > @article.save 
=> true 
1.9.3-p0 :011 > @article.reload 
=> #<Article _id: 4f9d90c7f15fefb3a0000001, _type: nil, body: "articleBodyText"> 
1.9.3-p0 :012 > @article.comments 
=> [] 
1.9.3-p0 :013 > 

関連部品:Gemfile.lockの

gem "mongoid", "~> 2.4" 
gem "bson_ext", "~> 1.5" 

関連部品:

rails (3.2.3) 
mongo (1.6.2) 
mongoid (2.4.8) 
bson (1.6.2) 
bson_ext (1.6.2)