更新后在pdf上保存数据

时间:2014-07-07 07:23:56

标签: ruby-on-rails ruby pdf

我有管理订单的申请。用户可以创建订单,在创建订单后,生成带有订单数据的pdf。此pdf需要通过电子邮件发送给用户。 此外,pdf需要保存在表格的管理面板上,以便管理员可以下载。

问题是如何在创建订单后保存此pdf,以便任何更新价格或其他数据不会影响创建的pdf。 PDF需要保留订购时间内的所有数据。

应用程序在Ruby on Rails上。

谢谢。

1 个答案:

答案 0 :(得分:0)

使用邪恶的pdf gem。

1.You must install https://code.google.com/p/wkhtmltopdf/
2.Install the gem with the command "gem install wkhtmltopdf-binary"
3.Create a folder to save your pdf files like "/public/user_pdfs"
4.Configure your controller

class UserController < ApplicationController
  def pdf_files
   @users= User.all
   respond_to do |format|
    format.html
    format.pdf  { 
      send_data render(
        ####### WICKED CODE ######
        :pdf => "user_pdfs" },
        :save_to_file => Rails.root.join('public/user_pdfs', "name_of_pdf_on_Db.pdf")
        ),
        ####### END WICKED CODE ######
        :filename => "name_of_pdf_in_view.pdf"
    }       
   end     
  end
end

5.In the view "pdf_files.html.erb"just create a link to download the file

 <% @users.each do |user| %>
   <%= user.name %>
   <%= link_to "DOWNLOAD PDF",{:controller=>"user",:action=>"pdf_files",:id=>user.id } %>
 <% end %>

6.Create the pdf file just the information that you want to show ...."pdf_files.erb"

 <% @users.each do |user| %>
   <%= user.name %>
 <% end %>   

有关更多信息,请转到https://github.com/mileszs/wicked_pdf