2013-05-07 65 views
3

最近我開始在Ruby on Rails中開發,因此我認爲自己是初學者。Active Admin view to PDF

我正在測試Active Admin gem(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. 你能舉個例子嗎?

我將不勝感激。

回答

7

這被質疑前一段時間,但我加入一個例子是對於未來的搜索者來說,ActiveAdmin更具體一些,因爲@ user2163649的答案是更爲一般的方法。

首先,我們需要明確ActiveAdmin不支持PDF輸出。你需要自己實現它。

我拿起了用於PDF創建的WickedPDF gem,但您可以根據自己的需要和限制從several other options(如蝦,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> 
4

嘗試蝦寶石。我認爲這是在生成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

+0

謝謝,我會努力的! – CristianOrellanaBak 2013-05-07 07:37:02

+0

@ user2163649,我假設你是指app/controllers下的索引,但ActiveAdmin有它自己的索引方法。 – Askar 2014-03-28 02:14:09

+0

我已經添加了一個更具體到ActiveAdmin的答案。 – baxang 2014-09-16 03:24:07