保存时文件有3层的嵌套,子对象是错误的父下保存:Mongoid:嵌入式文件是错误的父下保存
user = User.create
website = user.websites.create
post = website.posts.create
post2 = website.posts.create
post.images.create
post2.images.create
puts "#{user.to_json}"
puts "#{user.reload.to_json}"
每一个职位应具备的图像,这是在肮脏的真实用户对象(user.to_json) =>https://gist.github.com/vdaubry/cdc465d6d5ef84576830
但是,当我重新加载所有图像被嵌入下的第一个交用户(user.reload.to_json) =>https://gist.github.com/vdaubry/a9c217a467dd9ff9a7fb
这是一个错误还是我错过了一些明显的东西?
这里是用来重现这一类的定义:
class User
include Mongoid::Document
embeds_many :websites
end
class Website
include Mongoid::Document
include Mongoid::Timestamps
embedded_in :user
embeds_many :posts
end
class Post
include Mongoid::Document
include Mongoid::Timestamps
embedded_in :website
embeds_many :images
end
class Image
include Mongoid::Document
include Mongoid::Timestamps
embedded_in :post
end
我的Gemfile:
ruby 2.1.2p95
gem 'rails', '~> 4.1.4'
gem 'mongoid', '~> 4.0.0'