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

destroy_all fails on embedded documents

    • Type: Icon: Task Task
    • Resolution: Done
    • 12_01_17
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None

      <pre><code>
      class Book
      include Mongoid::Document
      embeds_many :pages
      end

      class Page
      include Mongoid::Document
      embedded_in :book, inverse_of: :pages
      field :number
      end
      </code></pre>
      if the number of embedded documents is odd - all works fine

      <pre>
      ruby-1.9.2-rc1 > book = Book.create
      => #<Book _id: 4c337b10948f3963f1000005, >
      ruby-1.9.2-rc1 > book.pages
      => []
      ruby-1.9.2-rc1 > book.pages.create number: '1'
      => #<Page _id: 4c337b21948f3963f1000006, number: "1">
      ruby-1.9.2-rc1 > book.pages.create number: '2'
      => #<Page _id: 4c337b23948f3963f1000007, number: "2">
      ruby-1.9.2-rc1 > book.pages.create number: '3'
      => #<Page _id: 4c337b24948f3963f1000008, number: "3">
      ruby-1.9.2-rc1 > book.pages
      => [#<Page _id: 4c337b21948f3963f1000006, number: "1">, #<Page _id:
      4c337b23948f3963f1000007, number: "2">, #<Page _id:
      4c337b24948f3963f1000008, number: "3">]
      ruby-1.9.2-rc1 > book.pages.destroy_all
      => 3
      ruby-1.9.2-rc1 > book.pages
      => []
      </pre>

      but if the number is even:

      <pre>
      ruby-1.9.2-rc1 > book = Book.create
      => #<Book _id: 4c337b48948f3963f1000009, >
      ruby-1.9.2-rc1 > book.pages
      => []
      ruby-1.9.2-rc1 > book.pages.create number: '1'
      => #<Page _id: 4c337b55948f3963f100000a, number: "1">
      ruby-1.9.2-rc1 > book.pages.create number: '2'
      => #<Page _id: 4c337b58948f3963f100000b, number: "2">
      ruby-1.9.2-rc1 > book.pages
      => [#<Page _id: 4c337b55948f3963f100000a, number: "1">, #<Page _id:
      4c337b58948f3963f100000b, number: "2">]
      ruby-1.9.2-rc1 > book.pages.destroy_all
      => 2
      ruby-1.9.2-rc1 > book.pages
      =>

      {"_id"=>"4c337b58948f3963f100000b", "number"=>"2"}

      </pre>

      now book.pages is a Hash

      mongoid 2.0.0.beta9 or latest git - no matter
      ruby-1.9.2-rc1
      Rails 3.0.0.beta4

            Assignee:
            Unassigned Unassigned
            Reporter:
            saksmlz@gmail.com Aliaksandr Rahalevich
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: