当我的应用程序通过将其传递到URL(例如,domain.com/letter/2.pdf)进行呈现时,会创建一个.pdf文件。
它不会被保存在任何地方。
我该如何将这个实际的pdf作为出站电子邮件中的附件。
这是我的邮件发送器:
def campaign_email(contact,email)
subject email.subject
recipients contact.email
from 'Me <me@me.com>'
sent_on Date.today
attachment = File.read("http://localhost:3000/contact_letters/#{attachment.id}.pdf")
attachment "application/pdf" do |a|
a.body = attachment
a.filename = "Othersheet.pdf"
end
end
这是创建/渲染PDF的控制器:
def create
@contact_letter = ContactLetter.new(params[:contact_letter])
@contact = Contact.find_by_id(@contact_letter.contact_id)
@letter = Letter.find_by_id(@contact_letter.letter_id)
if @contact_letter.save
flash[:notice] = "Successfully created contact letter."
#redirect_to contact_path(@contact_letter.contact_id)
redirect_to contact_letter_path(@contact_letter, :format => 'pdf')
else
render :action => 'new'
end
end
注意:我在代码中硬编码了localhost:3000/,如何使用变量代替它,以便在开发环境下为localhost:3000,在生产环境下为正确的域名?是否可以包含路由规则?
错误:出现无效参数 - http://localhost:3000/contact_letters/9.pdf