Validates_presence_of con eccezione

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 :frowning:

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

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 … [email protected]:

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 … [email protected]:

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?

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 :slight_smile:

considera questa ipotesi:
validates_presence_of :first_name, :on => :create

anche le pagine di documentazione potrebbero aiutarti:

ciao,
A.

pezzuya … ha scritto:

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: [email protected]
site: http://www.sistrall.it