主动管理视图,以PDF(Active Admin view to PDF)

2019-09-02 03:09发布

我开始用Ruby开发on Rails的最近,所以我认为自己初学者。

我测试活动联系宝石( http://activeadmin.info/ )和导出查看PDF文件时,我发现一个问题。

在官方文件说,如何自定义下载链接( http://activeadmin.info/docs/3-index-pages.html ,它是在文件的结尾),但对我不起作用。

当我把下面的代码行:

Mymodel ActiveAdmin.register do
  index: download_links => [: pdf]
end

其结果是到本地主机的链接:3000 /管理/ mymodel.pdf并显示以下错误信息:“无法加载PDF文档”。

两个问题:

  1. 你有什么建议?
  2. 你能不能举个例子?

我会很感激。

Answer 1:

这被质疑前一段时间,但我加入一个例子是一个更具体一点,以ActiveAdmin对未来搜索为@ user2163649的回答是一个更通用的方法。

首先,我们需要明确指出ActiveAdmin不支持PDF导出开箱。 你需要自己实现它。

我拿起WickedPDF创业板创建PDF,但是你可以选择其他几个选项 ,如虾,Pdfkit等根据自己的需要和限制。

# Gemfile
gem 'wicked_pdf'
# app/admin/pages.rb
ActiveAdmin.register Page do
  controller do
    # if you want /admin/pages/12345.pdf
    def show
      super do |format|
        format.pdf { render(pdf: "page-#{resource.id}.pdf") }
      end
    end
  end

  # if you want /admin/pages/12345/pdf, pdf_admin_page_path(@page)
  member_action :pdf, method: :get do
    render(pdf: "page-#{resource.id}.pdf")
  end
end
# app/views/admin/order_items/show.pdf.erb
<h1>page <%= resource.id %></h1>
<p><%= resource.body %></p>
# app/views/admin/order_items/show.html.erb
<h1>page <%= resource.id %></h1>
<p><%= resource.body %></p>


Answer 2:

尝试虾宝石。我认为这是在生成PDF文档的最优秀的Ruby库..

恩。

在索引

respond_to do |format|
  format.html
  format.pdf do
    pdf = SalePdf.new(@sales)
    send_data pdf.render, filename: "Daily_Sales_Report, :disposition => "inline"
  end
end

sale_pdf.rb

class SalePdf < Prawn::Document
  text "sample pdf"
end

github上: https://github.com/prawnpdf/prawn



文章来源: Active Admin view to PDF