# Validates\_presence\_of con eccezione

**URL:** <https://www.ruby-forum.com/t/validates-presence-of-con-eccezione/176820>\
**Category:** IT\
**Created:** [October 6, 2009, 6:05pm UTC](https://www.ruby-forum.com/t/validates-presence-of-con-eccezione/176820 "2009-10-06T18:05:03Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![pezzuya](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/eada6e/32.png) [@pezzuya](https://www.ruby-forum.com/u/pezzuya)\
**Post date:** [October 6, 2009, 6:05pm UTC](https://www.ruby-forum.com/t/validates-presence-of-con-eccezione/176820/1 "2009-10-06T18:05:03Z")

</div>

Ho un modello User in cui ho inserito:

validates\_presence\_of :region\_id

vorrei che questa validazione venisse effettuata sempre tranne che per  
l’azione “update\_password” contenuta in un controller “segreteria”.

Ho provato con:

validates\_presence\_of :region\_id, :unless =\> :update\_password

ma non sembra funzionare ☹

l’errore restituito Ã©:

undefined method ‘update\_password’.

Secondo me viene verificato che “update\_password” non Ã© un metodo del  
modello (e in effetti Ã© cosÃ¬ perchÃ¨ Ã© un metodo(azione) del controller  
segreteria)

come potrei risolvere il problema?

Un grazie anticipato a tutte le persone che mi vorranno aiutare.

Ciao

---

<div class="post-metadata">

**Author:** ![pezzuya](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/eada6e/32.png) [@pezzuya](https://www.ruby-forum.com/u/pezzuya)\
**Post date:** [October 6, 2009, 9:21pm UTC](https://www.ruby-forum.com/t/validates-presence-of-con-eccezione/176820/2 "2009-10-06T21:21:15Z")

</div>

Il metodo che verifica la condizione deve esistere nel model User non  
nel controller.

validates\_presence\_of :region\_id, :if =\> :password\_updated?

def password\_updated?  
unless…  
end

–Tommaso

2009/10/6 pezzuya … [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

---

<div class="post-metadata">

**Author:** ![pezzuya](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/eada6e/32.png) [@pezzuya](https://www.ruby-forum.com/u/pezzuya)\
**Post date:** [October 6, 2009, 10:02pm UTC](https://www.ruby-forum.com/t/validates-presence-of-con-eccezione/176820/3 "2009-10-06T22:02:49Z")

</div>

Tommaso P. wrote:

> Il metodo che verifica la condizione deve esistere nel model User non  
> nel controller.
> 
> validates\_presence\_of :region\_id, :if =\> :password\_updated?
> 
> def password\_updated?  
> unless…  
> end
> 
> –Tommaso
> 
> 2009/10/6 pezzuya .. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

ok ma io vorrei EVITARE l’esecuzione di validates\_presence\_of :region\_id  
quando viene eseguito l’azione password\_updated del controller  
segreteria…

come posso fare?

---

<div class="post-metadata">

**Author:** ![pezzuya](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/eada6e/32.png) [@pezzuya](https://www.ruby-forum.com/u/pezzuya)\
**Post date:** [October 6, 2009, 11:26pm UTC](https://www.ruby-forum.com/t/validates-presence-of-con-eccezione/176820/4 "2009-10-06T23:26:32Z")

</div>

devi trovare _la regola_ che si verifica quando esegui il controller  
password\_updated. magari potresti validare la presenza di :region\_id  
solo in caso di creazione, e non durante le modifiche. tutto dipende da  
cosa stai facendo 🙂

considera questa ipotesi:  
validates\_presence\_of :first\_name, :on =\> :create

anche le pagine di documentazione potrebbero aiutarti:

> **[ActiveRecord::Base](https://api.rubyonrails.org/classes/ActiveRecord/Base.html#M002329)**
>
> Active Record Active Record objects don't specify their attributes directly, but rather infer them from the table definition with which they're linked.

> **[ActiveRecord::Validations](https://api.rubyonrails.org/classes/ActiveRecord/Validations.html#M002153)**
>
> Active Record Validations Active Record includes the majority of its validations from ActiveModel::Validations all of which accept the :on argument to define the context where the validations are act.

ciao,  
A.

pezzuya … ha scritto:

---

<div class="post-metadata">

**Author:** ![pezzuya](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/eada6e/32.png) [@pezzuya](https://www.ruby-forum.com/u/pezzuya)\
**Post date:** [October 7, 2009, 4:18pm UTC](https://www.ruby-forum.com/t/validates-presence-of-con-eccezione/176820/5 "2009-10-07T16:18:42Z")

</div>

Ciao!

La “regola” potrebbe essere che i campi “nuova password” e “conferma  
nuova password” (nomi ipotetici) compilati al momento dell’update  
password sono entrambi non vuoti.

Ciao,  
Silvano

–  
Considera l’ambiente prima di stampare questa email. Dai, che  
l’equazione è semplice: meno A4, più alberi.

. . . Silvano S. . . .  
email: removed\_email\_address@domain.invalid  
site: [http://www.sistrall.it](http://www.sistrall.it)
