Per alcuni casi, find_or_initialize_by_
non sarà utile e sarà necessario saltare le convalide con find_or_create_by
.
Per questo, è possibile utilizzare sotto flusso alternativo e modo di ROR:
- Aggiornare il modello come questo:
classe Messaggio < ActiveRecord :: Base
attr_accessor: skip_validation
appartiene a: utente
validates_presence_of: title, a meno che:: skip_validation
fine
- Si può usare ora in questo modo:
Post.where(user_id: self.id).first_or_create!(skip_validation: true)
ho usato first_or_create
invece di find_or_create_by
qui. Puoi passare più nomi e valori di colonna con questo, e la tua convalida non verrà risolta con questo.
È possibile continuare senza alcuna modifica per la forte parametri fine e non c'è bisogno di permettere questo 'skip_validation' in modo che possa funzionare con le convalide mentre l'aggiunta di voci.
Utilizzando questo, è possibile utilizzarlo con e senza convalida passando un parametro.
Grazie mille. È così che sono andato! Apprezzo il fatto di aver trovato il tempo di rispondere. –