paper_trailの宝石はバージョンを追跡し、うまく機能します。しかし、私が気付いていた1つのエッジケースがあります。ほとんどのオブジェクトでは、ログインしている場合にアプリケーションコントローラがwhodunnitを設定し、そのセッション中に作成されたすべてのオブジェクトには、ログインしている人物に応じて「whodunnit」というバージョンが記録されます。新しいユーザーを作成するときにpaper_trailにwhodunnitを設定するにはどうすればよいですか?
興味深いのは、新しいユーザーがサインアップしているためにログインしています。ユーザーは、実際にはユーザー自身で作成されたため、間違った「なし」で作成されます。
もちろん、ユーザーレコードが保存される前にwhodunnitがユーザーのIDを知ることはできません。私はこれを知っている。
しかし、さまざまなバッチジョブでユーザーレコードが変更され、Webセッションには参加しないため、後で競合が発生し、バージョンが無制限のレコードでも作成されます。
ここでは、誰がそのユーザーを作成したのかを知ることができません。一部のバッチインポートプロセスまたはユーザーです。
私は、そのオブジェクトのPapertrail :: Versionsテーブルの周りをうかがい、whodunnitを修正するなど、さまざまな解決策を熟考していますが、それはかなり汚れているようです。
アドバイスはありますか?