2011-12-19 49 views
1

我在使用Facebook Comments社交插件,我希望每次有人添加新評論時都能發送電子郵件。在過去,我使用Rails的Action Mailer發送郵件,但我無法弄清楚如何讓它工作。如何使用JavaScript通過Rails 3 Action Mailer發送電子郵件?

我在聽的JavaScript事件FB.Event.subscribe('comment.create)然後我想要的回調函數來發送Ajax請求的ActionMailer發送一封電子郵件。我該怎麼做呢?

JavaScript代碼:

FB.Event.subscribe('comment.create', commentMailer(response)) 

function commentMailer(response) { 
    //code to call function to send mail 
} 

Rails代碼:

class UserMailer < ActionMailer::Base 
default :from => "<email address>" 


    def new_comment_email(user, ride) 
    @user = user 
    @ride = ride 
    emails = ride.users.collect {|user| user.email} 
    mail(:to => emails, :subject => "etc") 
    end 
end 
+0

檢查[this](http://phpjs.org/functions/mail:884)out。 – Purag 2011-12-19 23:20:27

+0

@Purmou,你對他的問題的回答是一個可疑的PHP函數? – 2011-12-19 23:23:40

+0

@SrdjanPejic:不,它是到PHP.js郵件功能的鏈接。 PHP.js讓你在Javascript中使用PHP函數。 – Purag 2011-12-19 23:24:15

回答

0

僅使用創建操作創建控制器。將您的事件發佈到該控制器的創建操作,其唯一目的是調用ActionMailer併發送電子郵件。您將能夠仔細檢查您在服務器上發佈的數據是否是一種獎勵。請記住,控制器不需要將1:1映射到模型。

1

我可能只是有一個隱藏的形式,我會在commentMailer回調提交。它會在控制器中執行一個操作,該控制器將郵件傳遞給所需的收件人。

具有隱藏表單的優點是,您不必在javascript中創建要發佈到的url。