act_as_tree, belongs_to and has_many foreign keys incorrect

Two models:

class Project << ActiveRecord::Base   has_many :files end

class File << ActiveRecord::Base   has_one :project   acts_as_tree end

Inside of the project model, when creating a new product, I want to store the hierarchy of files within it.

If I do,

my_top_level_file = my_project_object.files.create(:file_name => 'foo'); my_top_level_file.children.create(:file_name => 'bar')

When the data gets saved, the first row in the Files table gets the new product_id value that is also inserted into the Projects table, but the child row does not, giving me results like:

Projects:   id: 1   name: A_Name

Files:   id: 1   project_id: 1   parent_id: null   filename: foo

  id: 2   product_id: 0 <---------------------- Should this not be 1?   parent_id: 1   filename: bar

Firstly, am I doing things right? If so, is this a bug, or is this how things were intended to work? Surely all rows in the files table should have the correct foreign key attached to them?

Thanks,

Stephen.