如何将生成的pdf保存在rails服务器中

asd*_*fjk 1 ruby pdf ruby-on-rails

目前我正在使用 Rails 的虾 gem 生成 pdf。当用户点击此操作时生成 pdf

def print_pdf
    @user = User.find(params[:id])
    @details = @user.details_data
    respond_to do |format|
      format.pdf do
        pdf = PrintDetailsPdf.new(@user, view_context, @details)

          send_data pdf.render, filename: "#{@user.id}.pdf",
                  type: 'application/pdf',
                  disposition: 'inline'
      end
    end
  end
Run Code Online (Sandbox Code Playgroud)

在上面的操作中,我生成了 pdf 并在浏览器中显示它,它工作得很好。但我想在浏览器中显示 pdf,并将 pdf 保存在服务器上的 public/user_details 目录中。我怎样才能做到这一点?

Pee*_*ush 5

有一些很好的 gem 可以帮助文件上传和保存。是这些宝石的列表。回形针和 Carrierwave 是最受欢迎的选择。

您也可以从头开始实现它。Rails 具有内置的帮助程序,可以让您轻松推出自己的解决方案。

pdf_content = *Content you want to save in the file*
File.open(Rails.root.join('public', 'user_details', filename), 'wb') do |file|
  file.write(pdf_content.read)
end
Run Code Online (Sandbox Code Playgroud)

这取决于您想要实现的复杂性,但这对于简单的文件保存任务来说完全足够了。前往此处查找更多信息。