Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 创建pdf并通过电子邮件发送_Ruby On Rails_Pdf Generation_Wicked Pdf - Fatal编程技术网

Ruby on rails 创建pdf并通过电子邮件发送

Ruby on rails 创建pdf并通过电子邮件发送,ruby-on-rails,pdf-generation,wicked-pdf,Ruby On Rails,Pdf Generation,Wicked Pdf,我正在开发一个电话计费应用程序。 我创建了一个简单的Rails应用程序,其中包含3个表:客户端、发票、呼叫记录。 我可以浏览我的虚拟数据,一切正常。 我想添加一个功能,通过电子邮件向客户发送发票。 我正在考虑在发票上创建一个简单的链接/按钮#show view:Send invoice 我在看WickedPDF gem,因为它将从HTML生成pdf 我有三个问题: 1) WickedPDF适合我要找的东西吗? 我不是在试图为浏览网站的用户提供PDF文件。我不想让它可以下载。 我只需要生成它并在单

我正在开发一个电话计费应用程序。 我创建了一个简单的Rails应用程序,其中包含3个表:客户端、发票、呼叫记录。 我可以浏览我的虚拟数据,一切正常。 我想添加一个功能,通过电子邮件向客户发送发票。 我正在考虑在发票上创建一个简单的链接/按钮#show view:Send invoice

我在看WickedPDF gem,因为它将从HTML生成pdf

我有三个问题:

1) WickedPDF适合我要找的东西吗? 我不是在试图为浏览网站的用户提供PDF文件。我不想让它可以下载。 我只需要生成它并在单击发送发票时保存它,如果它还没有生成的话。然后使用rails mailer将其通过电子邮件发送给将生成的副本保存在服务器上的客户端(所有这些都将在自定义控制器操作中完成)

2) 哪里是存储生成的pdf的最佳位置?资产文件夹中的自定义文件夹,公用文件夹

3) 您将如何使用rails保存文件?我做过一些rails,但我从来没有在这个方向做过任何事情

  • 实际上,您可以直接使用,而无需 控制员:

    pdf=WickedPdf.new.pdf\u from\u string(“
    您好!
    ”)

  • 应以类似的格式将其存储在公用文件夹中:

    public/users/:user\u id/:invoice\u id

  • 你应该把它当作一个延迟的工作来使用,或者因为某事需要时间,用户不应该等到它生成。
    khaled gomaa-如何将生成的pdf保存到磁盘上?假设我将在控制器中生成它,正如您所建议的那样,pdf=WickedPdf.new.pdf\u from_string(..)是File.open(…){…}该怎么办?我知道你建议sidekiq生成pdf。如果控制器随后立即退出,我将如何保存它。我的sidekiq知识有限。这可能是另一个问题,但如果你能用这些信息更新你的答案,我将不胜感激。
    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