# Rails 3 e validazioni campi obbligatori

**URL:** <https://www.ruby-forum.com/t/rails-3-e-validazioni-campi-obbligatori/205093>\
**Category:** IT\
**Created:** [March 29, 2011, 11:42am UTC](https://www.ruby-forum.com/t/rails-3-e-validazioni-campi-obbligatori/205093 "2011-03-29T11:42:39Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![luislavena](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/0ea827/32.png) [@luislavena](https://www.ruby-forum.com/u/luislavena)\
**Post date:** [March 29, 2011, 11:42am UTC](https://www.ruby-forum.com/t/rails-3-e-validazioni-campi-obbligatori/205093/1 "2011-03-29T11:42:39Z")

</div>

Buongiorno lista/forum.

In un’applicazione in cui gli operatori inseriscono dati vari, devo fare  
in modo che alcuni di essi siano obbligatori.  
Sul model corrispondente ho scritto:

…  
validates :dato1, :presence =\> true  
validates :dato2, :presence =\> true  
validates :dato3, :presence =\> true  
…

In qualche maniera la cosa funziona, nel senso che se si prova a dare la  
conferma di salvataggio l’applicazione va in errore mostrando la  
bellissima schermata che riassume l’eccezione.  
Se ricordo bene in Rails 2 compariva nella pagina di inserimento il  
messaggio di errore e venivano evidenziati i campi obbligatori,  
consentendo all’operatore di procedere col loro riempimento e salvare.

Ora devo gestirmi l’eccezione a mano, o ho inavvertitamente fatto fuori  
qualcosa?

Eventualmente c’è da qualche parte una guida su come gestire gli errori  
in maniera “pulita”? Sto trovando un po’ di tutto, da chi si affida a  
gemme esterne più o meno complesse, chi va di scaffolding, chi si fa  
tutto a mano… lo so che sono tutte vie alternative e valide, ed è  
proprio per questo che non saprei quale usare: la pochissima esperienza  
non mi è d’aiuto '🙂  
Voi che consigliate/usate?

Come sempre grazie in anticipo.

---

<div class="post-metadata">

**Author:** ![daneel\_olivaw](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/58f4c7/32.png) [@daneel\_olivaw](https://www.ruby-forum.com/u/daneel_olivaw)\
**Post date:** [March 29, 2011, 1:44pm UTC](https://www.ruby-forum.com/t/rails-3-e-validazioni-campi-obbligatori/205093/2 "2011-03-29T13:44:55Z")

</div>

[http://guides.rubyonrails.org/active\_record\_validations\_callbacks.html](http://guides.rubyonrails.org/active_record_validations_callbacks.html)

HTH  
claudio

2011/3/29 Daneel O. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> …
> 
> –  
> Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/).
> 
> * * *
> 
> Ml mailing list  
> [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> [http://lists.ruby-it.org/mailman/listinfo/ml](http://lists.ruby-it.org/mailman/listinfo/ml)

–  
Claudio M.

---

<div class="post-metadata">

**Author:** ![daneel\_olivaw](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/58f4c7/32.png) [@daneel\_olivaw](https://www.ruby-forum.com/u/daneel_olivaw)\
**Post date:** [March 30, 2011, 9:19am UTC](https://www.ruby-forum.com/t/rails-3-e-validazioni-campi-obbligatori/205093/3 "2011-03-30T09:19:04Z")

</div>

Claudio M. wrote in post #989780:

> [http://guides.rubyonrails.org/active\_record\_validations\_callbacks.html](http://guides.rubyonrails.org/active_record_validations_callbacks.html)
> 
> HTH  
> claudio

Sì, visto anche quello 🙂  
Ho provato a rifare un progetto rails 3 da 0 per verificare cosa potesse  
essere successo e lì usando lo scaffolding automatico la validazione  
funziona, quindi rimane solo un’ipotesi: ho fatto danni cercando di  
personalizzare il codice.  
Meglio che riparta daccapo: usare codice vecchio (sto cercando di  
passare l’applicazione da rails 2 a 3) copincollato evidentemente non è  
una buona soluzione 🙂

Grazie e scusate la banalità del problema 🙂

---

<div class="post-metadata">

**Author:** ![daneel\_olivaw](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/58f4c7/32.png) [@daneel\_olivaw](https://www.ruby-forum.com/u/daneel_olivaw)\
**Post date:** [April 1, 2011, 12:55pm UTC](https://www.ruby-forum.com/t/rails-3-e-validazioni-campi-obbligatori/205093/4 "2011-04-01T12:55:46Z")

</div>

Daneel O. wrote in post #990348:

> Daneel O. wrote in post #989910:
> 
> > Grazie e scusate la banalità del problema 🙂
> 
> … che non è poi così banale: alla fine ho individuato cosa fa dare di  
> matto la validazione: due listbox generate con gli elementi di due  
> tabelle. Ora cerco di capire perché impazzisce, ma se qualcuno ha  
> suggerimenti dica pure.

Scusate se continuo il monologo.  
Alur, a forza di farne, ho “scoperto” che il problema si crea quando  
avvengono i controlli: si accorge che i campi richiesti non sono  
compilati e rigenera la pagina con la segnalazione che non possono  
essere lasciati vuoti.

Io ho il contenuto delle due listbox generato nel controller “new”, ma  
quando deve ricaricare la pagina con gli avvisi non passa per “new” e di  
conseguenza nella vista si trova con due listbox dal contenuto nil e  
questo non è gradito.  
Ho trovato una guida su Formtastic  
([http://railscasts.com/episodes/184-formtastic-part-1](http://railscasts.com/episodes/184-formtastic-part-1)) che da come dice  
risolve il problema, ma mi sto chiedendo se è proprio necessario  
installare un’altra gemma.  
Secondo voi conviene farsi una gestione dell’errore a mano, oppure  
caccio su formtastic e la sfrutto?

---

<div class="post-metadata">

**Author:** ![daneel\_olivaw](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/58f4c7/32.png) [@daneel\_olivaw](https://www.ruby-forum.com/u/daneel_olivaw)\
**Post date:** [April 1, 2011, 11:39am UTC](https://www.ruby-forum.com/t/rails-3-e-validazioni-campi-obbligatori/205093/5 "2011-04-01T11:39:56Z")

</div>

Daneel O. wrote in post #989910:

> Grazie e scusate la banalità del problema 🙂

… che non è poi così banale: alla fine ho individuato cosa fa dare di  
matto la validazione: due listbox generate con gli elementi di due  
tabelle. Ora cerco di capire perché impazzisce, ma se qualcuno ha  
suggerimenti dica pure.
