La mia convalida personalizzata sembra essere eseguita prima del mio blocco before_save
, il che è strano per me. Sono a conoscenza di before_validation
, ma sto provando a testare il mio validatore personalizzato, quindi un hook before_validation non me lo permetterebbe. Ho anche letto che testare un metodo privato (il mio validatore) è una cattiva pratica. Cosa dovrei fare?Does before_save eseguito dopo le convalide?
Ulteriori informazioni: Vogliamo che gli utenti siano in grado di caricare un documento con un URL o un file, ma non entrambi o nessuno (xor). Il mio validatore controlla lo xor di questi. Se un utente modifica un documento, l'hook before_save
rimuove l'URL o il file corrente. In teoria, il flusso dovrebbe essere:
- Carica un file
- Convalida e salvare
- Carica URL
- before_save, validare, salvare
Ma nel mio test, ricevo errori di convalida , suggerendo che il before_save
non si sta verificando.
sì: http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html – Kamen
Perché non eseguire la convalida e scrivere un altro metodo? Quindi il before_save può chiamare il metodo di "validazione" personalizzato – liyicky