#ruby-on-rails #mongoid
#ruby-on-rails #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>]
Вызов destroy (или delete) для встроенного документа, по-видимому, удаляет его в памяти, но не из базы данных. Любая информация будет очень признательна!
Комментарии:
1. Привет. Вы нашли ответ на этот вопрос? Был бы очень признателен за любую помощь
2. извините — нет — это было давно, и я не занимался проектом
Ответ №1:
Пожалуйста, опубликуйте свою версию rails и версии ваших драгоценных камней. Я проверил вашу настройку с помощью rails 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 >
Соответствующие части Gemfile:
gem "mongoid", "~> 2.4"
gem "bson_ext", "~> 1.5"
Соответствующие части Gemfile.lock:
rails (3.2.3)
mongo (1.6.2)
mongoid (2.4.8)
bson (1.6.2)
bson_ext (1.6.2)