来自mongoid docs:
考虑一个有很多帖子的成员:
类成员包括Mongoid :: Document has_many:posts
accepts_nested_attributes_for:posts end您现在可以在关联的帖子模型上设置或更新属性 通过属性hash。
对于没有id密钥的每个哈希,新记录将是 实例化,除非哈希还包含一个_destroy键 评估为真。
params = {member:{name:“joe”,posts_attributes:[ {title:“Kari,令人敬畏的Ruby文档浏览器!” }, {title:“平等主义假设......”}, {title:“”,_ destroy:“1”}#这将被忽略]}}
member = Member.create(params ['member'])member.posts.length#=> 2 member.posts.first.title#=> 'Kari,令人敬畏的Ruby文档 浏览器! member.posts.second.title#=> '平等主义者 假设...'
有没有办法更新嵌套属性而不是创建呢?
答案 0 :(得分:1)
它依赖于具有ID的嵌套文档。
例如,在Rails表单中,相应的属性字段(在您的情况下为posts_attributes
)将作为表单的一部分传递。然后Rails使用 ID对元素进行更新,为没有 ID的创建更新。