簡単な質問。レコードが保存された後に後処理を実行するActiveRecordモデルがあります。したがって、モデルでは、Resqueキューにジョブを張るqueue_for_processingメソッドがあります。私のレコードが正常に保存された後にこれを実行させるために、私はモデルに次のように書いています。Rails:after_createの例外で保存を停止する
かなり簡単です。私は、昨夜、私のredisサーバーがダウンして事態がうまくいかないことを除いて、すべてが予想どおりに機能していると思っていました。レコードはまだ保存されていて、後で手動で処理することができると私は期待していました。しかし、queue_for_processingメソッドは例外(予期される動作)をスローし、レコードの保存を停止しています。
after_createの仕組みを誤解していますか?それとも、私の理解は正しいのでしょうか、ファンキーなことが起こっていますか?
ありがとうございました。
すばらしい返答をいただきありがとうございます。これはまた役に立ちました:http://rails-bestpractices.com/posts/695-use-after_commit –
また、私をafter_commitに紹介してくれてありがとう。私はそれがRails3で導入されたことを知っていますが、私はメモを見逃しているに違いありません。私は新しいことを学ぶのが好きです:-) –
すばらしい説明!簡潔さのため+1。 –