After_save question

Hi all,

In my model class I need to update an attribute with the ID of the
record
right after the model object has been saved.
I intended to use the after_save callback for this purpose.

I don’t know how to update this automatically after saving an object.
Calling save in the after_save hook, causes an infinite loop.
Write_attribute does not save to the Database. What can I do, to make
this
happen auto-magically?

class Product < ActiveRecord::Base

after_save :update_lineage

def update_lineage
write_attribute(:lineage, “#{id},”) # this does not save the
attribute
to the db
# save! # this does save, but calls the after_save callback again,
causing a infinite loop
end

end

Thanks,

Harm de Laat

Hi Harm,

class Product < ActiveRecord::Base

-after_save :update_lineage
+after_create :update_lineage

def update_lineage

  •  write_attribute(:lineage, "#{id},") # this does not save the
    
  • attribute to the db
  •  # save! # this does save, but calls the after_save callback 
    

again,

  • causing a infinite loop
  • update_attribute :lineage, “#{id},”

end

end

Regards
Florian