Rails 4で非同期メールを送信するにはどうすればよいですか? つまり、連絡先フォームの [送信] ボタンをクリックしても、ページは更新されませんが、電子メールが検証されて送信され、ユーザーにメッセージが表示されます。
私はaction_mailer
正しく構成し、電子メール アドレスをパラメーターとしてContactForm
受け取る 1 つのアクションを持つメーラーを持っています。contact
結果として、
ContactForm.contact("test@gmail.com").delivers #=> delivers email perfectly
しかし、それはコマンドラインで機能しています。リンクでこれを行う正しい方法が本当にわかりません。つまり、 にナビゲートするボタンを作成して、send_email
次のようなルートを作成できます。
get 'send_email', to: 'contact#sendemail'
次に、上記のように、このメソッド チェーンを含む sendemail アクションを作成します。しかし、これは非同期ではありません。また、メールを送信する前にメールのフィールドを検証する方法や、無効なフィールドを強調表示する方法もわかりません。
Ajax と JSON の応答は、フィールドを強調表示するための鍵ですか? 検証はどうですか?
resque_mailer
は、非同期メールを送信する良い方法のようです。しかし、バニラの Rails で ajax がうまく処理されているのに、なぜこの外部の gem が必要なのでしょうか?