2010-06-11 1 views
1

Dans chaque modèle, j'ai 10 lignes ou plus pour self.errors.add_to_base. Y at-il un autre moyen que je peux gérer ces lignes de manière plus facile? sera-t-il possible de gérer ces erreurs avec une fonction commune qui peut gérer self.errors.add_to_base pour n'importe lequel de mon modèle?Fonction commune pour self.errors.add_to_base dans les rails

Function like 
def error_add_to_base(message,conditions) 
    self.errors.add_to_base(message) if eval("#{conditions}") 
end 
+1

Pourriez-vous s'il vous plaît poster un code afin que nous puissions voir ce qui peut être fait? :] –

+0

Oui, s'il vous plaît. De votre question, il est difficile de voir ce que vous voulez faire. – averell

Répondre

1

Je pense que OP demande, si une méthode d'aide de rails existe, qui peut être appelé au lieu de définir callbacks pour chaque modèle, où la nécessité d'une validation (sur mesure) se produit. Ainsi, au lieu d'utiliser l'assistant 'validate', il appelle un assistant pour signaler les erreurs qui ne sont liées à aucun attribut spécifique, mais à une instance de modèle, "dans son ensemble".

Et si je devais répondre à sa question: Non, aucune "fonction commune" n'existe. Quel est le problème avec:

validate :must_meet_my_business_logic 

def :must_meet_my_business_logic 
errors.add(:base, "blah!") if... 
end 

de toute façon?

Questions connexes