DEV Community

Maynard Cabalitan
Maynard Cabalitan

Posted on

3 2

ActiveModel::Dirty Attribute Change

Sometimes we need to check specific attribute if change from it previous value before running an api for request limit.

The solution is activemodel::dirty

for after save

saved_change_to_attribute?

for before save

will_save_change_to_attribute?

Example

class User
  after_save api_update, if: :saved_change_to_name?
  before_save api_update, if: :will_save_change_to_position?

  def api_update
  end
end

These callbacks will run only if the attributes change from its previous value.

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay