Well, I've narrowed this down to an after_create problem. I'm versioning the documents and each version depends on the most recent version created. So there is an after_create method that looks like this:
############################################################## class Document < ActiveRecord::Base belongs_to :projects has_one :page acts_as_tree def after_create update_version end def update_version self.update_attribute("version", self.parent.next_version) end def next_version # This used to be self.children.sort etc.. but I wanted to use the :lock functionality sorted_subversions = Document.find(:all, :conditions => ["parent_id = ?", self.id], :lock => "FOR UPDATE") # If it has no parent, then it is the root and doesn't need a version. if self.parent_id = nil next_version = nil # If there are children elsif !sorted_subversions.empty? sorted_subversions = sorted_subversions.sort {|x,y| x.version.to_i <=> y.version.to_i } latest_sub_version = sorted_subversions[-1] # The last in the array sorted by version if sorted_subversions.length == 1 && latest_sub_version.version.nil? next_version = '1' else next_version = latest_sub_version.version.next end else # If it is not a root, and doesn't have any children if self.version next_version = self.version + '.1' else next_version = '1' end end return next_version end end ############################################################## I removed this after_update method and everything is fine. The problem is that I'm not sure how to do this without causing the errors. The record needs to be updated with it's version after it is created, depending on what versions already exist in the table. I tried doing it before, but I was getting duplicate versions if two documents were saved at the same time. With the :lock option, it prevents duplicates, but causes the problem described at the beginning of this thread. Any help is GREATLY appreciated and thanks for all the help so far. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---