前一阵子有人对此提出质疑,但我添加了一个对 ActiveAdmin 更具体的示例,供未来的搜索者使用,因为@user2163649 的答案是一种更通用的方法。
首先,我们需要明确 ActiveAdmin 不支持开箱即用的 PDF 导出。你需要自己实现它。
我选择了 WickedPDF gem 来创建 PDF,但您可以根据自己的需要和限制从其他几个选项中进行选择,例如 Prawn、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>