2017-07-11 1 views
1

EDIT: C'est le code de travail que je suis venu de la réponse de Thomas, il y avait d'autres erreurs qui devaient être corrigées aussi bien.Déclencheur ActionMailer de JSON POST

Je travaille avec un serveur API Rails configuré pour créer des liens partagés pour les utilisateurs. Je l'ai mis en place de sorte qu'ils passent un certain nombre de paramètres via POST et je veux envoyer les expéditeurs, puis enregistrer l'enregistrement. Je suis en mesure de sauvegarder le dossier, mais je n'arrive pas à déclencher les expéditeurs.

Voici l'action create sur le contrôleur

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 

Et la classe ShareMailer

class ShareMailer < ApplicationMailer 

    default from: '[email protected]' 

    def share_dealsheet(recipient) 
    @recipient = recipient 
    mail(to: @recipient, subject: "Test") 
    end 
end 

Il y a aussi un modèle de texte standard enregistré en tant que share_dealsheet.rb

Si je POST ce qui suit dans Postman , l'enregistrement est enregistré, mais aucun mailer n'est jamais déclenché (donc je suppose que les autres mailers que j'utilise la sortie dans la console comme ils sont créés).

{ 
    "token": "Sbdvmvt2VnzO0n3_thGSfZc1xkjs", 
    "shared_with":{ 
     "1": "[email protected]", 
     "2": "[email protected]" 
    }, 
    "expiry": "30 June 2017" 
} 

Répondre