2016-03-24 23 views
0

Oldukça garip bir davranış. EmployeeMailer'da bir eylem için iki şablon tanımladım.ActionMailer her iki formatı da tek bir e-postayla gönderir

employee_mailer/ 
    salary_slips.html.erb 
    salary_slips.text.erb 

Ve aşağıdaki kullanıyorum kodudur:

def salary_slips(salary_record) 
    mail.attachments['#{@record.employee.name}'] = { mime_type: 'application/pdf', content: @record.create_pdf_file.render } 
    mail to: @record.employee.official_email, subject: ['Salary Silp for', @date].join(' ') 
end 

sorundur: istemci tarafında, ben .text.erb bölümü ile başlayan bir e-posta almak ve aynı zamanda .html.erb bölümünü kapsamaktadır sonunda.

geliştirme günlükleri adamlar gibidir:

Rendered employee_mailer/salary_slips.html.erb (4.2ms) 
Rendered employee_mailer/salary_slips.text.erb (0.5ms) 
Rendered employee_mailer/salary_slips.text.erb (0.5ms) 

Ben sadece .html.erb bölümünü oluşturması gerektiğini düşünüyorum. Denetimi alabilmem ve yalnızca .html.erb bölümünün tek bir e-postaya gönderebilmesinin herhangi bir yolu var mı?

Not: Zaten açıkça şu şekilde biçimlerini ifade etmek format blok kullandım

: ActionMailer varsayılan davranıştır

mail to: @record.employee.official_email, subject: ['Salary Slip for', @date].join(' ') do |format| 
    format.html { render 'salary_slips' } 
    format.text { render 'salary_slips' } 
end 

cevap

0

Cevabı göndermek için garip, ama sadece attachments için mail.attachments değişti ne zaman çözüldü.

attachments['#{@record.employee.name}'] = { mime_type: 'application/pdf', content: @record.create_pdf_file.render } 

Şimdi, sadece HTML parçasını gönderiyor, ve bir tek alıcıya değil düz metin kısmı: İşte değişti hat.

0
class UserMailer < ApplicationMailer 
    default from: '[email protected]' 

    def welcome_email(user) 
     @user = user 
     @url = 'http://example.com/login' 
     mail(to: @user.email, 
     subject: 'Welcome to My Awesome Site') do |format| 
     format.html { render 'another_template' } 
     format.text { render text: 'Render text' } 
    end 
end 

Eğer cevap formatını seçebilirsiniz. Daha fazla ayrıntı için http://guides.rubyonrails.org/action_mailer_basics.html

+0

Sadece sorumu düzenledim. Söylediklerini denedim ama yardım etmedim. –

+0

template = true? "Welcome_photographer": "welcome" posta (: = için> "e-posta", : Konu , => "... Hoşgeldiniz": template_name => şablon) şablonu seçebilirsiniz bu durumda bu –

+0

deneyin ne yapmak istersin –