2011-09-05 3 views
6

j'ai un modèle simple avec les propriétés suivantes:DataMapper validations, erreurs vides

property :title, String, 
    :required => true, 
    :length => 1..200 

property :body, String, 
    :required => true, 
    :length => 1..200 

Quand je l'enregistrer (en utilisant la méthode save) avec un titre qui ne valide pas, il ne sauvera pas, mais je reçois l'objet suivant:

<DataMapper::Validations::ValidationErrors:0x00000003133e10 
@resource=#<Pun @id=nil @image="" @title="" @body="dsfsdf" @description=nil 
@published=nil @user_id=1 @round_id=nil>, @errors={}> 

Donc le hash d'erreurs est vide. Cependant, quand c'est la propriété body qui est vide, le hachage des erreurs détecte son problème.

Une idée sur la raison pour laquelle le hachage des erreurs est vide lorsqu'elle implique la propriété: title?

Merci

Répondre

0

Alors knowtheory écrit dans un commentaire sur un blog (en 2010) que certaines méthodes d'aide ont été créés pour compenser cela. Ses exemples pour un modèle d'utilisateur:

User.raise_on_save_failure = true - pour toutes les instances utilisateur à exploser.

DataMapper.raise_on_save_failure = true - pour TOUT faire exploser s'il ne sauvegarde pas avec succès.

Définitions de source: dm-core/model.rb et dm-core/resource.rb