2011-08-12 2 views
1

私はリビジョンコメントをリビジョンIDとタイムスタンプと同じテーブルにあり、複数のエンティティが変更されても一度だけ保存されるように、リビジョンコメントをEnverのRevisionEntityを使って保存しようとしています。リビジョンリスナーにデータを渡す

私の現在のアプローチは、要求を処理

  • コントローラのアクションが
  • セッション変数にコメントを置き、私のカスタムRevisionListenerは、セッション変数を読み込みRevisionEntityにコメントを追加し、セッション変数
  • をクリアしています

私はこのアプローチに満足していません。競争状態やその他の嫌な行動を起こしやすいようです。私はこれをより強固にする方法はありますか?コントローラーのアクションでRevisionEntityに直接アクセスすることができますか?

答えて

2

あなたの問題を本当に理解しているかどうかはわかりませんが、リクエスト処理中に一部の情報のみを保存する場合は、 Http.Request.current().argsを使用できます。 description in the API docsが言うように、それはです:

フリースペースリクエスト固有のデータを格納するために

お使いのコントローラのアクションがちょうどparams(またはどこ他にどこから来ている)からのコメントをコピーする必要がありますし、それらをargsマップに格納すると、そこからRevisionListenerがそれらを取得できます。

+0

私はそれを操作することができない空間でリスナーから離れて投げ捨てられましたが、要求argsを介してデータを渡すことは素晴らしい作業です。 –

+0

RevisionListenerからのHttp.Request.current()。argsへのアクセス方法を教えてください。 – DonkeyKong

関連する問題