Question

J'ai un rappel after_update dans mon modèle

after_update :do_something

Cependant, je ne souhaite pas que la méthode soit appelée après la création d'un objet.Est-il possible d'ajouter une exemption à after_update ?

Était-ce utile?

La solution

Rails a de nombreux rappels.Lorsque vous créez un objet after_create et after_save sont appelés.Lorsque vous mettez à jour un objet existant, after_update et after_save sont appelés.

after_create est utilisé uniquement lors de la création comme after_update sert uniquement à mettre à jour les objets existants. after_save s'exécute dans les deux cas, après le rappel de création/mise à jour approprié.

Si vous ne souhaitez pas que la méthode soit appelée uniquement après la création d'un objet, vous devez utiliser after_create plutôt.

Vous pouvez définir autant de rappels que nécessaire

class User < ActiveRecord::Base
  after_create :one_method
  after_create :another_method
  after_update :one_more_method_only_for_updates

  def one_method
  end

  def another_method
  end

  def one_more_method_only_for_updates
  end
end
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top