2013-02-11 10 views
13

La richiamata after_validation viene attivata prima di before_save. Cosa succede tra questi callback, se non altro? Perché scegliere uno su un altro?Cosa succede tra after_validation e before_save?

+2

'after_validation' saranno chiamati se si chiama' '#valid quindi non ci possono essere casi in cui si desidera solo per verificare la validità di un record, ma ancora eseguire qualcosa dopo la convalida. Nella mia esperienza, non ho mai avuto la possibilità di usare 'after_validation'. – jvnill

+2

Oltre a quanto detto jvnill, un oggetto non viene salvato se non è valido. Pertanto, la chiamata al salvataggio su un oggetto non valido non innescherà il callback 'before_save', mentre attiverà' after_validation'. – Max

risposta

12

C'è un after_validation_on_update o after_validation_on_create a seconda se l'articolo è un nuovo record.

E come Max dichiara, la catena viene interrotta prima che raggiunga la richiamata before_save se l'oggetto non è valido, quindi se è necessario che si verifichi qualcosa indipendentemente dalla validità dell'oggetto, before_save non è il posto giusto.

Per riferimento:? http://apidock.com/rails/ActiveRecord/Callbacks/after_validation_on_create

Problemi correlati