La gemma paper_trail tiene traccia delle versioni e fa un buon lavoro. Tuttavia, c'è un caso limite che ho notato. Per la maggior parte degli oggetti, il controller dell'applicazione imposta whodunnit se si è connessi, e quindi tutti gli oggetti creati durante quella sessione hanno una versione che registra "whodunnit" in base a chi ha effettuato il login.Come impostare whodunnit per paper_trail quando si crea un nuovo utente?
Il caso interessante è dove nessuno è loggato perché un nuovo utente si sta registrando. L'utente viene creato con un whodunnit "nullo", il che è sbagliato perché in realtà l'utente è stato creato da solo.
Naturalmente, whodunnit non può conoscere l'ID dell'utente prima che il record utente viene salvato. Lo so.
Tuttavia, questo crea un conflitto più tardi, come i vari processi batch modificano anche i record utente, e non essere in una sessione web, creare anche versioni con record whodunnit nil.
ora non posso dire che ha creato l'utente - un processo batch di importazione o l'utente.
Sto meditando varie soluzioni, come forse rovistare il tavolo di Papertrail :: Versions per quell'oggetto e fissare il whodunnit, ma questo sembra piuttosto impuro.
Qualche consiglio?