EDIT: Dies ist der Arbeitscode, aus dem ich von Thomas 'Antwort kam, es gab andere Fehler, die auch behoben werden mussten.Trigger ActionMailer von JSON POST
Ich arbeite mit einem Rails-API-Server, der eingerichtet ist, um freigegebene Links für Benutzer zu erstellen. Ich habe es eingerichtet, so dass sie eine Reihe von Parametern über POST
übergeben und ich möchte die Mailer senden und speichern Sie den Datensatz. Ich kann den Datensatz speichern, aber ich kann die Mailer nicht auslösen. Hier
ist die Aktion auf dem Controller erstellen
def create
@recipients = (share_params[:shared_with])
@recipients.each do |recipient|
ShareMailer
.share_dealsheet(recipient)
.deliver_now
end
@share = current_user.shares.create!(share_params)
json_response(@share, :created)
end
Und die ShareMailer Klasse
class ShareMailer < ApplicationMailer
default from: '[email protected]'
def share_dealsheet(recipient)
@recipient = recipient
mail(to: @recipient, subject: "Test")
end
end
Es gibt auch eine Textvorlage gespeichert als share_dealsheet.rb
Wenn ich POST
folgendes in Postman Der Datensatz wird gespeichert, aber es wird kein Mailer ausgelöst (daher nehme ich an, dass die anderen Mailer, die ich verwende, in der Konsole ausgegeben werden) wie sie erstellt werden).
{
"token": "Sbdvmvt2VnzO0n3_thGSfZc1xkjs",
"shared_with":{
"1": "[email protected]",
"2": "[email protected]"
},
"expiry": "30 June 2017"
}
So einfach sehen, danke! Ich erkannte, dass es danach ein Problem mit der Schleife gab, aber das ist auch in der obigen Bearbeitung behoben. – oneWorkingHeadphone