Bonjour
Je travail actuellement sur un modele comme celui-ci
class Category < AR::Base
has_many :assets, :dependent => :nullify
end
class Asset < AR::Base
belongs_to :category
end
Je souhaite executer un traitement des que la categorie d’un asset a
ete modifie
J’utilise pour cela un callback dans le modele Category ainsi :
class Category < AR::Base
has_many :assets, :dependent => :nullify
before_save :mark_assets_as_changed
before_destroy :mark_assets_as_changed
protected
def mark_assets_as_changed
Asset.update_all({:changed => true}, {category_id => self.id})
end
end
le callback before_destroy ne fonctionne pas car l’association est
rompu par :dependent => :nullify avant l’execution du callback.
Existe-il un moyen simple d’ajouter de nouveaux callback a AR:Base
Sinon est-ce que
before_destroy :callback_1, :callback_2 garanti l’execution
de :callback_1 avant :callback_2 ?
Merci
Mourad
Bonjour Mourad,
Existe-il un moyen simple d’ajouter de nouveaux callback a AR:Base
Techniquement, rien n’est impossible, mais à quel moment du cycle de
vie de l’objet souhaiterais-tu intervenir ?
Sinon est-ce que
before_destroy :callback_1, :callback_2 garanti l’execution
de :callback_1 avant :callback_2 ?
Oui, en ce cas, callback_2 sera toujours exécuté après callback_1,
sauf si callback_1 renvoie false, auquel cas la chaîne est rompue.
Guillaume “Zifro” DESRAT
Président de l’association Ruby France
http://www.rubyfrance.org/
Techniquement, rien n’est impossible, mais à quel moment du cycle de
vie de l’objet souhaiterais-tu intervenir ?
Merci pour cette réponse si rapide !
J’ai besoin inserer un callback juste avant la destruction des
associations par :dependent => nullify (ou destroy)
et ce la me semble plus rigoureux que de maintenir les associations
soi même en utilisant des callbacks.
Cependant comme c’est pour une demande urgente, je vais remplacer les
clauses “dependent” par des callbacks
Merci
Mourad