Hey,

i got into trouble with datamapper recently when iterating over a list
that contains inherited resources. Can anyone please confirm this as a
bug or give me a hint what I am doing wrong? I expected the following
code to return all 5 "folders" which can be confirmed by executing
recursive(f).

But instead after I saved and queried again, I only get 3 folders back
( when executing recursive(d) ).

Regards,
Sebastian


require 'rubygems'
require 'dm-core'

DataMapper.setup(:default, { :adapter => "in_memory" })

class Element
  include DataMapper::Resource
  property :id,          Serial
  property :name,        String
  property :classtype, Discriminator
  belongs_to :folder
end

class Folder < Element
  has n, :elements
end


f = Folder.new(:name =>"folder1", :elements =>[
                                               Folder.new
(:name=>"folder2", :elements => []),
                                               Folder.new
(:name=>"folder3", :elements => [
 
Folder.new(:name=>"folder4", :elements => []),
 
Folder.new(:name=>"folder5", :elements => [])
                                                                                
         ])
                                              ])

f.save

def recursive (f)
  p f.name
  f.elements.each do |e|
    recursive e
  end
end

d=Folder.first(:name =>"folder1")

recursive(d)

-- 
You received this message because you are subscribed to the Google Groups 
"DataMapper" group.
To post to this group, send email to datamap...@googlegroups.com.
To unsubscribe from this group, send email to 
datamapper+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/datamapper?hl=en.

Reply via email to