0

Prototype で RJS を使用しており、RoR Mailer システムが電子メールを送信している間に HTML コードを置き換えようとしています。簡単に言うと、ブラウザーの読み込み中にボタンの近くに .gif 画像を表示することを目指しています。

私の app/views/users/ reset.js.rjsファイルには、次のコードがあります。

page.replace(:action_button, system_image_loading_tag)
page.redirect_to( :root )

私の app/controllers/*users_controller.rb* には、次のコードがあります。

def reset
    respond_to do |format|
        UsersMailer.confirm_reset(user).deliver
        format.js
    end
end

関連フォームの送信 電子メールが送信されるのを待つ必要があります。その後、ブラウザがルート パスにリダイレクトされます。では、今回は負けないようにしたいのですが、どうすればよいでしょうか?それを行う最良の方法は何ですか?

4

1 に答える 1

0

このユーザーと同様の問題が発生しているようです。Controller がアクションをレンダリングする前にメールが配信されるのを待ちたくない場合は、メール配信をバックグラウンドに移動してみてください。バックグラウンド ジョブを実行するためのシステムが既にある場合は、すばらしいことです。そうでない場合、私は個人的に DelayedJob を使用したことがありませんが、ActionMailer で DelayedJob を使用するためのこれらの手順は非常に簡単に思えます。

于 2010-12-24T01:28:09.510 に答える