# Validazione di un campo se un altro campo Ã¨ nullo

**URL:** <https://www.ruby-forum.com/t/validazione-di-un-campo-se-un-altro-campo-a-nullo/86104>\
**Category:** IT\
**Created:** [February 19, 2007, 11:16pm UTC](https://www.ruby-forum.com/t/validazione-di-un-campo-se-un-altro-campo-a-nullo/86104 "2007-02-19T23:16:28Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Fausto](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/f6c823/32.png) [@Fausto](https://www.ruby-forum.com/u/Fausto)\
**Post date:** [February 19, 2007, 11:16pm UTC](https://www.ruby-forum.com/t/validazione-di-un-campo-se-un-altro-campo-a-nullo/86104/1 "2007-02-19T23:16:28Z")

</div>

Ciao a tutti,  
vorrei controllare che l’utente, durante la registrazione mi inserisca  
almeno uno dei campi: email e cellulare.  
Come posso validare il modello con validates\_presence\_of con l’opzion  
:if?

Grazie

---

<div class="post-metadata">

**Author:** ![Fausto](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/f6c823/32.png) [@Fausto](https://www.ruby-forum.com/u/Fausto)\
**Post date:** [February 20, 2007, 12:12pm UTC](https://www.ruby-forum.com/t/validazione-di-un-campo-se-un-altro-campo-a-nullo/86104/2 "2007-02-20T12:12:36Z")

</div>

Fausto wrote:

> Ciao a tutti,  
> vorrei controllare che l’utente, durante la registrazione mi inserisca  
> almeno uno dei campi: email e cellulare.  
> Come posso validare il modello con validates\_presence\_of con l’opzion  
> :if?
> 
> Grazie

validates\_presence\_of :email if self.telephone.nil?(non ti assicuro  
nulla 🙂 )

---

<div class="post-metadata">

**Author:** ![Fausto](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/f6c823/32.png) [@Fausto](https://www.ruby-forum.com/u/Fausto)\
**Post date:** [February 22, 2007, 1:36pm UTC](https://www.ruby-forum.com/t/validazione-di-un-campo-se-un-altro-campo-a-nullo/86104/3 "2007-02-22T13:36:25Z")

</div>

def validate  
if self.email.blank? && self.mobile.blank?  
errors.base\_add(“inserisci almeno uno fra email e cellulare”)  
end  
end

---

<div class="post-metadata">

**Author:** ![Fausto](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/f6c823/32.png) [@Fausto](https://www.ruby-forum.com/u/Fausto)\
**Post date:** [February 23, 2007, 11:24am UTC](https://www.ruby-forum.com/t/validazione-di-un-campo-se-un-altro-campo-a-nullo/86104/4 "2007-02-23T11:24:14Z")

</div>

david wrote:

> ma perché “self”? Self è la classe, no? e def validate s’attacca  
> all’istanza (o no?)

beh, penso che validate sia un metodo dell’istanza, quindi il “self”  
dentro validate() si riferisce all’istanza.

Se validate() fosse un metodo di classe, non sarebbe dichiarato come:  
def self.validate()  
…  
end  
In questo caso il “self” dentro al corpo di self.validate() si  
riferirebbe alla classe

> errors.base è sull’istanza pure…  
> hmmm

beh, per maggiore chiarezza poteva scrivere self.error.base(…)

> /me confused/  
> così non va?
> 
> ```
> def validate
> (email.blank? || mobile.blank?) ? errors.base_add("jkjkjk kjo
> ") : true
> end
> 
> ```

Cosi funziona perche’ dentro un metodo il “self” e’ implicito, uno lo  
aggiunge per maggiore chiarezza, per sottolineare che “email” o “mobile”  
sogno degli attributi dell’oggetto, ma anche senza “self” tutto funziona  
a dovere.

Spero di non aver scritto un mondo di vaccate 😃

ciao!  
Gendag

---

<div class="post-metadata">

**Author:** ![Fausto](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/f6c823/32.png) [@Fausto](https://www.ruby-forum.com/u/Fausto)\
**Post date:** [February 22, 2007, 2:00pm UTC](https://www.ruby-forum.com/t/validazione-di-un-campo-se-un-altro-campo-a-nullo/86104/5 "2007-02-22T14:00:29Z")

</div>

ma perché “self”? Self è la classe, no? e def validate s’attacca  
all’istanza (o no?)  
errors.base è sull’istanza pure…  
hmmm  
/me confused/  
così non va?

```
 def validate
     (email.blank? || mobile.blank?) ? errors.base_add("jkjkjk kjo
 ") : true
 end

```

Matteo V. wrote:

```
 def validate
  if self.email.blank? && self.mobile.blank?
    errors.base_add("inserisci almeno uno fra email e cellulare")
  end
 end
 On 2/20/07, mix [1]<removed_email_address@domain.invalid> wrote:

 Fausto wrote:
 > Ciao a tutti,
 > vorrei controllare che l'utente, durante la registrazione mi
 inserisca
 > almeno uno dei campi: email e cellulare.
 > Come posso validare il modello con validates_presence_of con
 l'opzion
 > :if?
 >
 > Grazie
 validates_presence_of :email if self.telephone.nil?(non ti assicuro
 nulla :) )
 --
 Posted via [2]http://www.ruby-forum.com/.
 _______________________________________________
 Ml mailing list
 [3]removed_email_address@domain.invalid
 [4]http://lists.ruby-it.org/mailman/listinfo/ml

 _______________________________________________
 Ml mailing list
 [5]removed_email_address@domain.invalid
 [6]http://lists.ruby-it.org/mailman/listinfo/ml

```

–  
“When all you have is a hammer, everything looks like a nail”

References

1. [mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
2. [http://www.ruby-forum.com/](http://www.ruby-forum.com/)
3. [mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
4. [http://lists.ruby-it.org/mailman/listinfo/ml](http://lists.ruby-it.org/mailman/listinfo/ml)
5. [mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
6. [http://lists.ruby-it.org/mailman/listinfo/ml](http://lists.ruby-it.org/mailman/listinfo/ml)
