2011-11-02 29 views
9

Tôi đang xây dựng ứng dụng đầu tiên của mình với mongoid và đang gặp sự cố khi xóa tài nguyên được nhúng. Tôi có các mô hình:xoá tài liệu được nhúng với mongoid

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

vv ..

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

Tôi không hiểu tại sao tôi không thể xóa một bình luận từ một bài báo

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>] 

Calling phá hủy (hoặc xóa) trên tài liệu được nhúng xuất hiện để xóa nó trong bộ nhớ, chứ không phải từ db. Bất kỳ thông tin chi tiết nào sẽ được đánh giá rất nhiều!

+1

Hi. Bạn có tìm thấy câu trả lời cho điều này không? Sẽ thực sự đánh giá cao bất kỳ sự giúp đỡ – Ben

+0

xin lỗi - không - đây là một thời gian trước đây, và tôi đã không theo đuổi dự án – chrispanda

Trả lời

0

Vui lòng đăng phiên bản đường ray của bạn và các phiên bản của đá quý của bạn. Tôi đã kiểm tra thiết lập của bạn với đường ray 3.2.3:

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 > 

phần có liên quan của Gemfile:

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

phần có liên quan của Gemfile.lock:

rails (3.2.3) 
mongo (1.6.2) 
mongoid (2.4.8) 
bson (1.6.2) 
bson_ext (1.6.2) 
Các vấn đề liên quan