# Rails: Propagazione di Validation da figlio a padre

**URL:** <https://www.ruby-forum.com/t/rails-propagazione-di-validation-da-figlio-a-padre/84725>\
**Category:** IT\
**Created:** [February 7, 2007, 7:38am UTC](https://www.ruby-forum.com/t/rails-propagazione-di-validation-da-figlio-a-padre/84725 "2007-02-07T07:38:49Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![carminem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/90db22/32.png) [@carminem](https://www.ruby-forum.com/u/carminem)\
**Post date:** [February 7, 2007, 7:38am UTC](https://www.ruby-forum.com/t/rails-propagazione-di-validation-da-figlio-a-padre/84725/1 "2007-02-07T07:38:49Z")

</div>

Salve a tutti,

Ho un paio di modelli siffatti:

class Client \< ActiveRecord::Base  
validates\_presence\_of :cognome, :nome, :data\_di\_nascita,:badge  
has\_one :badge

end

class Badge \< ActiveRecord::Base  
belongs\_to :client  
validates\_presence\_of :numero  
validates\_numericality\_of :numero, :only\_integer =\> true  
validates\_uniqueness\_of :numero  
validates\_presence\_of :tipo

private

def validate  
errors.add(:client\_id,“Badge giÃ assegnato”) if (self.client\_id !=  
nil) and (Badge.find(:all, :conditions =\> “client\_id =  
#{self.client\_id}”).size \> 1)  
end

end

Se dalla console di rails eseguo dei test cercando di assegnare lo  
stesso badge a due client diversi,  
all’esecuzione di save!, giustamente, mi viene ritornata un’eccezione.  
La stessa cosa _non_ accade se faccio come segue:  
c,d = Client.find(:all)  
b1,b2 = Badge.find(:all)  
c.badge = b1  
d.badge = b1  
c.save!  
d.save!

Se analizzo b1.errors.size, osservo che Ã¨ 1, mentre c.valid? e d.valid?  
restituiscono “true”.

L’errore sul badge non dovrebbe propragarsi anche al client che lo  
contiene?  
Oppure, Ã¨ necessario aggiungere un controllo anche sul client?

Ringrazio in anticipo per il Vs aiuto.  
Saluti

---

<div class="post-metadata">

**Author:** ![carminem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/90db22/32.png) [@carminem](https://www.ruby-forum.com/u/carminem)\
**Post date:** [February 7, 2007, 10:31am UTC](https://www.ruby-forum.com/t/rails-propagazione-di-validation-da-figlio-a-padre/84725/2 "2007-02-07T10:31:34Z")

</div>

Sono sempre io 🙂

> L’errore sul badge non dovrebbe propragarsi anche al client che lo  
> contiene?  
> Oppure, Ã¨ necessario aggiungere un controllo anche sul client?

Ho trovato tra le API di Rails “validates\_associates” che, da quel che  
leggo,  
effettua il controllo sulla validitÃ anche degli associati.

E’ questa la strada da seguire?
