2013-10-25 137 views
0

如何使用rails 4發送異步電子郵件?我的意思是,當我點擊聯繫表單的「發送」按鈕時,頁面不會刷新,但是電子郵件會被驗證併發送,並向用戶顯示一條消息。發送異步電子郵件

我已經正確配置action_mailer,並且有一個ContactForm郵件程序,其中一個contact操作將電子郵件地址作爲參數。

結果,

ContactForm.contact("[email protected]").delivers #=> delivers email perfectly 

但是,這工作在命令行上。我真的不知道用鏈接做這件事的正確方法。我的意思是,我可以創建一個按鈕,naviagates到send_email,然後我可以有一個這樣的路徑:

get 'send_email', to: 'contact#sendemail' 

然後我將具有包含該方法鏈如上所示的sendemail動作。 但這不是異步的,而且,我也不知道如何在發送電子郵件之前驗證電子郵件的字段,或突出顯示無效字段。

Ajax和JSON響應是突出顯示字段的關鍵嗎?驗證呢?

resque_mailer似乎是發送異步電子郵件的好方法。但是,爲什麼我需要這個外部寶石時,通過香草鐵軌處理Ajax?

回答

0

這個概念應該是讓表單遠程提交。即在ContactsController中提交create方法。然後該方法會調用一個worker(resque/sidekiq)來發送電子郵件。

create操作也可以響應json。 JSON響應可以是成功或失敗(有錯誤)。

在AJAX成功回調中,您可以觸發警報,顯示div或通知用戶該電子郵件已發送的任何內容。

如果json結果與錯誤一起返回,那麼您可以通過JS顯示錯誤消息。