2017-07-11 3 views
1

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" 
} 

Antwort