2014-12-29 21 views
0

我使用actionmailer在rails中发送邮件。我想附加多个附件:Rails actionmailer:数据库附件

def prepare_attachments(languages) 
    attachments = {} 
    languages.each do |language| 
    next unless language.document 
    attachments[language.document.filename] = language.document.read 
    end 

    return attachments 
end 

def distribution_email(recipient, languages) 
    attachments = self.prepare_attachments(languages) 

    mail(
     :to => recipient, 
     :subject => 'Test' 
) 
end 

传送的邮件不包含任何附件。 这是工作:

def distribution_email(recipient, languages) 
    attachments['test.pdf'] = File.read("/tmp/test.pdf") 

    mail(
     :to => recipient, 
     :subject => 'Welcome to My Awesome Site' 
) 
end 

我做错了什么?

回答

1

我发现那位溶液,必须不能覆盖附件:

def prepare_attachments(languages) 
    attachments = {} 
    languages.each do |language| 
    next unless language.document 
    attachments[language.document.filename] = language.document.read 
    end 

    return attachments 
end 

def distribution_email(recipient, languages) 
    self.prepare_attachments(languages).each do |filename, content| 
    attachments[filename] = content 
    end 

    mail(
     :to => recipient, 
     :subject => 'Test' 
) 
end