2010-06-03 6 views
2

Cela peut sembler étrange, mais existe-t-il un 'mode Rails' pour qu'un modèle soit détruit si un certain attribut est vide? Dites que j'ai un modèle comme tags avec juste un attribut de nom ou quelque chose, si l'utilisateur modifie la balise et supprime tout le texte du champ de nom dans le formulaire que je voudrais que le modèle soit simplement supprimé.Rails, détruire si vide

Je connais la méthode reject_if, mais cela ne semble pas fonctionner.

Répondre

6

Sur le rappel after_save, vérifiez simplement l'attribut et détruisez le modèle s'il est vide. Quelque chose comme:

class Tag < ActiveRecord::Base 
    after_save { |tag| tag.destroy if tag.name.blank? } 
end 
+0

qui fonctionne, tout simplement curieux de savoir s'il y avait une façon de faire railsy super épique avec comme méthode 3 lettres ... yah savent comment ils aiment surprendre ya parfois ... –

+0

lol, une ligne pas assez bon pour toi? :) Je sais ce que tu veux dire. Ruby a tendance à vous gâter. –

+0

votre solution est géniale, mais je suppose que je me sens toujours comme si je faisais des choses mal quand je vois de petits raccourcis etc, merci encore! –