2011-09-05 10 views
6

Mam prosty model o następujących właściwościach:DataMapper walidacje, puste błędy

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

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

Kiedy zapisać go (za pomocą metody save) z tytułem, który nie sprawdza, to nie zbawi, ale otrzymuję następujący obiekt:

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

Skasowanie błędów jest puste. Jednak gdy jest to właściwość body, która jest pusta, błędy mieszają się z wykryciem problemu.

Każdy pomysł, dlaczego wartość mieszania błędów jest pusta, gdy dotyczy ona własności title?

Dzięki

Odpowiedz

0

Więc knowtheory napisał w komentarzu do blog (w 2010) że niektóre metody pomocnicze zostały stworzone, aby to skompensować. Jego przykłady dla modelu użytkownika:

User.raise_on_save_failure = true - dla wszystkich instancji użytkowników, które mogą ulec awarii.

DataMapper.raise_on_save_failure = true - za WSZYSTKO, aby wysadzić w powietrze, jeśli nie zostanie pomyślnie zapisany.

Definicje źródeł: dm-core/model.rb i dm-core/resource.rb

Powiązane problemy