将通过 ActionMailer 中的 WickedPDF 生成的 PDF 传递给其他模块中的函数

Passing PDF Generated through WickedPDF in ActionMailer to functions in other Modules

当人们通过我的网站付款时,我正在尝试向他们发送电子邮件。我能够生成附件并将其与电子邮件一起发送。

我需要这样的申请流程:

生成附件 -> 用电子邮件发送 -> 将附件发送到 Google 驱动器

第一步和第二步完成。我在第三步遇到了一些问题。对于 Google 驱动器,我使用 Google API 制作了一个单独的模块,它运行良好。

我遇到的问题是将 pdf 对象从我的 ActionMailer 传递到 Drive 中声明的函数。该函数没有传递 pdf,而是发送此对象。

ActionMailer::Base::NullMail:0x0x0x(something)

默认情况下,Mailer 只有 returns ActionMailer 对象,有什么方法可以将其覆盖为 return 我在 Mailer 中生成的 PDF?如果没有,我还有哪些其他方法可以做到?

第三步可以从ActionMailer对象或数据库中获取文件路径,直接操作文件。

我已经解决了这个问题并更新了答案以便其他人可以受益。

我能够通过从 ActionController 本身导入渲染函数来实现它。

现在,我可以从视图对象执行 view.render 并执行相同的参数。我正在使用 Rails 4,但正如一些人告诉我的那样,此功能已在 Rails 5 中得到简化。

我从这里使用了这段代码:

view = ActionView::Base.new(ActionController::Base.view_paths, {})
view.render(file: 'template.html.erb')