after_saved called twice -- how to fix?

I have an after_save callback setup, but it's getting called twice. Per #764 Observers on a model are called multiple times - Ruby on Rails - rails , this is a known issue that won't be fixed. (In summary, rails doesn't convert required files to absolute paths, so files get required twice, and their callbacks are registered twice.) The fixes that are offered just haven't worked for me, and I don't know why.

Can anyone offer any sort of solution or work around?

Thanks!

I have an after_save callback setup, but it's getting called twice. Perhttps://rails.lighthouseapp.com/projects/8994/tickets/764-observers-o… , this is a known issue that won't be fixed. (In summary, rails doesn't convert required files to absolute paths, so files get required twice, and their callbacks are registered twice.) The fixes that are offered just haven't worked for me, and I don't know why.

Can anyone offer any sort of solution or work around?

Why are you requiring the file with different paths in multiple places?

Fred

I'm not, rails is.

I'm not, rails is.

you're going to have to explain a little more about how this is arising if you want anyone to be able to give concrete advice.

Fred

First - in the subject I said "after_save" but meant "after_create" but the issue is the same. I think I may have just figured it out, but perhaps you could verify. I have a project model and events models. When I create a project, I loop through an array that creates default events. I noticed that all the events were getting created twice. Here's the Project model:

class Project < ActiveRecord::Base   has_many :events   after_create :after_create

  def after_create     ## create my default events   end end

The problem, I think, is that after_create is called automatically, and you only need to have the "after_create :after_create" line if the callback is named something besides callback event. Once I took out the "after_create :after_create" line, it seemed to work. I didn't try it, but I suppose I could have left it in but named the method something besides "after_create" like "add_default_events."

So is what I have said correct?

Thanks for taking the time to help me with this.

Yes, that's correct. It was being called twice because you had defined the 'after_create' method, which gets called automatically, *and* you had added your 'after_create' method to the after_create callback chain by calling 'after_create :after_create'.

Chris

okey doke -- thanks for the confirmation.