Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6613495
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 25, 20262026-05-25T20:13:31+00:00 2026-05-25T20:13:31+00:00

My model looks like this: after_create :foobar after_update :foobar def foobar update_attributes(:foo => ‘bar’)

  • 0

My model looks like this:

  after_create :foobar
  after_update :foobar

  def foobar
    update_attributes(:foo => 'bar')
  end

Whenever I create an object. It calls foobar (after_create callback). But it also automatically triggers the after_update callback.

Basically, when I create an object its calling foobar twice.

How can I prevent this?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-25T20:13:31+00:00Added an answer on May 25, 2026 at 8:13 pm

    In after_create you’re calling update_attributes() which triggers the after_update callback.

    Basically you’re calling it twice. You need to figure out what the proper flow is for your program, and make it such that foobar only gets called once. Right now, the code you’ve written is executing as designed.

    One suggestion would be using before_[action] attributes instead to modify the fields in the incoming object. That way the object only gets saved once. The way you’ve written it, new objects get saved twice – once when they’re created, and once when they’re updated via update_attributes.

    I see that this is example code, but I’m not sure how, in after_update, since you explicitly make ANOTHER update, how this isn’t getting wrapped up in an infinite loop. Might be able to give a better answer if you post actual code.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

My model looks like this: class Staff(models.Model): StaffNumber = models.CharField(max_length=20,primary_key=True) NameFirst = models.CharField(max_length=30,blank=True,null=True) NameLast
I have a rails model that looks something like this: class Recipe < ActiveRecord::Base
I have a class in my domain model root that looks like this: namespace
I am using custom model binder in ASP.NET MVC 2 that looks like this:
So I have an observer which looks like this: class RecipeObserver < Mongoid::Observer def
I have a ListView setup in details mode that looks like this: When the
I've got a set of models that look like this: class Page(models.Model): title =
Newbie question. I have Django models that look like this: class Video(models.Model): uploaded_by =
This is what my data model classes look like: public class Employee { public
I have methods in all of my models that look like this: def formatted_start_date

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.