Walidacja modelu Rails tylko przy tworzeniu i aktualizacji

Jeśli chcę mieć walidację tylko przy create, to mogę zrobić

validates_presence_of :password, :on => :create

Ale jak powiedzieć o tworzeniu i aktualizacji? Próbowałem tego ale nie wyszło:

validates_presence_of :password, :on => [ :create, :update ]

Czy muszę zdefiniować walidację dwa razy?

Author: Jakub Arnold, 2009-09-08

3 answers

Domyślnie walidacje są uruchamiane zarówno dla create, jak i update. Więc powinno być po prostu:

validates_presence_of :password

Klawisz :on pozwala tylko wybrać jeden z nich.

 66
Author: Yaraher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-10 13:07:28

Tylko napisz:

validates_presence_of :password
Nie ma potrzeby...
on => :create
 11
Author: FJ.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-09 18:02:54

Można tego użyć, gdy trzeba wyłączyć walidację w niektórych konkretnych operacjach, takich jak delete.

 0
Author: Ederson Badeca,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-01 21:22:41