我正在开设电话结算应用程序。 我创建了简单的Rails应用程序,包含3个表Client,Invoice,CallRecord。 我可以浏览我的虚拟数据,一切正常。 我想添加一项功能,通过电子邮件将发票发送给客户。 我正在考虑在发票上显示一个简单的链接/按钮#show view:发送发票。
我正在查看WickedPDF gem,因为它将从HTML生成pdf。
我有三个问题:
1)WickedPDF对我想要的东西有益吗? 我不是试图向浏览网站的用户提供PDF。我不想让它可下载。 我只需要生成它并在点击发送发票时保存它,如果它还没有生成。然后使用rails mailer将其发送给客户端,将生成的副本保存在服务器上(所有这些都将在自定义控制器操作中完成)。
2)存储这个生成的pdf的最佳位置在哪里? Assets文件夹中的自定义文件夹,公用文件夹?
3)你会如何使用rails保存文件?我做了一些铁轨但是我从来没有做过这个方向。
答案 0 :(得分:2)
您可以直接使用Wicked-PDF而不使用。{ 控制器:
pdf = WickedPdf.new.pdf_from_string(&#39; <h1>Hello There!</h1>
&#39;)
或
WickedPdf.new.pdf_from_string(
render_to_string('templates/pdf.html.erb', :layout => 'pdfs/layout_pdf'),
:footer => {
:content => render_to_string(:layout => 'pdfs/layout_pdf')
}
) # which is awesome
存储它们应该以类似的格式存放在公共文件夹中:
公共/用户/:USER_ID /:INVOICE_ID
您应该考虑使用sidekiq或其他东西作为延迟作业,因为生成需要时间,用户不应该等到生成。