Klejnot paper_trail śledzi wersje i robi dobrą robotę. Jest jednak jeden skrajny przypadek, który zauważyłem. W przypadku większości obiektów kontroler aplikacji ustawia whodunnit, jeśli jesteś zalogowany, a następnie wszystkie obiekty utworzone podczas tej sesji mają wersję, która zapisuje "whodunnit" w zależności od tego, kto jest zalogowany.Jak ustawić whodunnit na paper_trail podczas tworzenia nowego użytkownika?
Interesującym przykładem jest sytuacja, w której nikt nie jest zalogowany. jest zalogowany, ponieważ nowy użytkownik się rejestruje. Użytkownik jest tworzony z "zerowym" whodunnit, co jest błędne, ponieważ w rzeczywistości użytkownik został stworzony przez siebie.
Oczywiście whodunnit nie może znać identyfikatora użytkownika przed zapisaniem rekordu użytkownika. Wiem to.
Jednak powoduje to konflikt w późniejszym czasie, ponieważ różne zadania wsadowe modyfikują również rekordy użytkowników, a nie są w sesji sieciowej, a także tworzą wersje z rekordami zerowego rekordu whodunnit.
Teraz nie mogę powiedzieć, kto utworzył użytkownika - jakiś proces importowania partii lub użytkownik.
Zastanawiam się nad różnymi rozwiązaniami, takimi jak być może grzebanie po stole Papertrail :: Versions dla tego obiektu i naprawianie whodunnit, ale wydaje się to dość nieczyste.
Każda rada?