2013-04-30 2 views
0

J'ai une validation simple dans un de mes modèles Rails, mais il ne semble pas déclencher une erreur comme je le souhaite.Erreur ne déclenchant pas dans la validation de modèle personnalisé

before_save :check_future_date 

private 
    def check_future_date 
    puts "==============================================================" 
    puts self.article.date 
    puts Date.today 
    if self.article.date <= Date.today 
     puts "error!!!!!!!!!!!!!!!!!"   
     errors[:base] << "Sorry, you must post at least a day in advance" 
    end 
    end 

Je sais que la logique est déclenchée parce que dans la console, je vois:

============================================================== 
2013-04-06 
2013-04-29 
error!!!!!!!!!!!!!!!!! 

Cependant, l'enregistrement est toujours enregistré, et aucun message d'erreur est affiché. J'ai aussi essayé:

errors.add(:base, 'Sorry, you must post at least a day in advance') 

Répondre

1

Vous devez vous enregistrer la méthode de validation personnalisée, au lieu d'effectuer un before_save.

changement

before_save :check_future_date 

Pour

validate :check_future_date 
Questions connexes