Uploaded image for project: 'Mongoid'
  1. Mongoid
  2. MONGOID-1503

Nested Attributes _destroy does not respect Paranoia

    • Type: Icon: Task Task
    • Resolution: Done
    • 2.4.0
    • Affects Version/s: None
    • Component/s: None

      class Parent
        include Mongoid::Document
      
        accepts_nested_attributes_for :childs, :allow_destroy => true
        embeds_many :childs, :cascade_callbacks => true
      end
      
      class Child
        include Mongoid::Document
        include Mongoid::Paranoia
      
        embedded_in :parent
      end
      
      ruby-1.9.2-p290 :046 > p = Parent.create
       => <Parent _id: 4eea357c8035444720000010, _type: nil> 
      ruby-1.9.2-p290 :047 > c1 = p.childs.create
       => <Child _id: 4eea357f8035444720000011, _type: nil, deleted_at: nil> 
      ruby-1.9.2-p290 :048 > c2 = p.childs.create
       => <Child _id: 4eea35818035444720000012, _type: nil, deleted_at: nil> 
      ruby-1.9.2-p290 :049 > p.childs_attributes = {"0" => {"_id" => c1.id}, "1" => {"_id"=>c2.id, "_destroy" => true}}
       => {"0"=>{"_id"=>BSON::ObjectId('4eea357f8035444720000011')}, "1"=>{"_id"=>BSON::ObjectId('4eea35818035444720000012'), "_destroy"=>true}} 
      ruby-1.9.2-p290 :050 > p.save  # this shouldn't delete the child, it should just set the deleted_at
       => true 
      ruby-1.9.2-p290 :051 > p.childs
       => [<Child _id: 4eea357f8035444720000011, _type: nil, deleted_at: nil, hi: nil>] 
      ruby-1.9.2-p290 :055 > p.childs.unscoped.to_a
       => [<Child _id: 4eea357f8035444720000011, _type: nil, deleted_at: nil, hi: nil>]
      

            Assignee:
            Unassigned Unassigned
            Reporter:
            nader Nader Akhnoukh
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: