2017-04-03 1 views
0

J'ai une méthode actinmailer où le @receiver est rempli s'il correspond à certaines conditions et il y a un @default_mail. Qui envoie des mails aux destinataires dans BCC et default_mail dans le champ to. Il se présente comme suit:Comment arrêter l'envoi de l'action `mail` à l'adresse`: to` si: les adresses bcc sont vides dans ActionMailer?

def mail_users 
    @default_mail = "[email protected]" 
    @latest_listing_mail= Equipment.joins(:user).last.user.email 
    @wanted_req_mail = WantedEquipment.where(sub_category_id: "#{a}", status: 2).pluck(:email) 
    @wanted_req_mail.include? @latest_listing_mail 
    if true 
     @receiver = @wanted_req_mail.delete(@latest_listing_mail) 
     @receiver = @wanted_req_mail 
     mail(bcc: @receiver, to: @default_mail) 
    end 
end 

Je ne veux pas le mail pour effectuer si le @receiver est vide. Comment puis-je y parvenir?

Répondre

1

Il suffit d'ajouter une condition

mail(bcc: @receiver, to: @default_mail) if @receiver.present? 

Et vous pouvez supprimer cette condition

if true # doesn't make sense 
end 
+0

je l'ai déplacé de 'si true..end' état et changé pour' mail (bcc : @receiver, à: @default_mail, sujet: @subject) si @ receiver'. Il est toujours disponible même lorsque '@ receiver' est vide. – user3576036

+1

Essayez d'ajouter le cadeau? 'if @ receiver.present?' –

+0

'if @ receiver.present?' fonctionne. – user3576036