# \[Rails\] Validazioni e polimorfismo

**URL:** <https://www.ruby-forum.com/t/rails-validazioni-e-polimorfismo/137258>\
**Category:** IT\
**Created:** [May 10, 2008, 9:14pm UTC](https://www.ruby-forum.com/t/rails-validazioni-e-polimorfismo/137258 "2008-05-10T21:14:49Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![serpico](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/7feea3/32.png) [@serpico](https://www.ruby-forum.com/u/serpico)\
**Post date:** [May 10, 2008, 9:14pm UTC](https://www.ruby-forum.com/t/rails-validazioni-e-polimorfismo/137258/1 "2008-05-10T21:14:49Z")

</div>

Salve a tutti,

vi sottopongo un problema che mi si Ã© presentato ultimamente, sperando  
di ricevere qualche dritta a riguardo.

L’applicazione in rails che sto creando permette agli utenti registrati  
di caricare video, immagini e altri tipi di files in varie sezioni del  
sito.  
Siccome files quali video o immagini hanno parametri e metodi comuni  
quali visibilitÃ , permessi e altro, ho pensato di creare un modello  
generico chiamato Attachment, polimorfico, in questo modo mi Ã© possibile  
creare associazioni di questo tipo:

Video has\_one :attachment, :as =\> :attachable  
Image has\_one :attachment, :as =\> :attachable

La comoditÃ di questo approccio Ã© che tutte le risorse (“Attachments”)  
della mia applicazione sono gestite nello stesso modo, sono accessibili  
da un’unica interfaccia ecc…

Siccome perÃ² c’Ã© una pagina di upload per ogni tipo di attachment che si  
vuole caricare, devo anche controllare che il file sia del formato  
corretto.

Al momento sono in grado di validare il tipo di file sul modello  
Attachment, il problema Ã© che la validazione cambia in base al tipo di  
attachment che si sta caricando (se si sta caricando dalla sezione  
images, deve controllare che il file sia per esempio solo in formato  
jpg, e cosÃ¬ via…).

Il punto Ã© che non so bene come gestire il problema della validazione, e  
mi piacerebbe ricevere qualche consiglio, magari da qualcuno che ha gia  
avuto un problema simile

---

<div class="post-metadata">

**Author:** ![serpico](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/7feea3/32.png) [@serpico](https://www.ruby-forum.com/u/serpico)\
**Post date:** [May 20, 2008, 11:32pm UTC](https://www.ruby-forum.com/t/rails-validazioni-e-polimorfismo/137258/2 "2008-05-20T23:32:36Z")

</div>

> Il punto Ã© che non so bene come gestire il problema della validazione, e  
> mi piacerebbe ricevere qualche consiglio, magari da qualcuno che ha gia  
> avuto un problema simile

Ti do un paio di idee, la prima Ã¨ l’uso dell’ helper:

```
validates_format_of :name, :with=>/.jpg/, :on=>:upload_image, 

```

:message=\>“Devi inserire un immagine”  
validates\_format\_of :name, :with=\>/.avi/, :on=\>:upload\_video,  
:message=\>“Devi inserire un filmato”

in :with metti l’espressione regolare per controllare l’estensione, in  
:on la tua def, prova perchÃ¨ non l’ho mai usata se non per controllare  
una email:  
[http://www.railsapi.org:8100/activerecord-validations-classmethods-validates\_format\_of](http://www.railsapi.org:8100/activerecord-validations-classmethods-validates_format_of)

l’altro sistema Ã¨ fare la def validate\_on\_create e metterci dentro i  
controlli

> **[rails – Page 2 – “golb ecruos nepo”.reverse](https://ctrlshiftesc.wordpress.com/category/rails/page/2/)**
>
> Posts about rails written by Piyush Rajesh Gupta
