2014-02-20 4 views
0

Я использую Rails 3.2.8 с activeadmin. Проблема я столкнулся, если настроить пользовательские ссылки для exporting в формате PDF (с использованием креветки камень) или XML, как,Экспорт ActiveAdmin в качестве {PDF, XML} пользовательских ссылок для каждой страницы

ActiveAdmin.register Project do 
    index :download_links => [:pdf, :xml] 
    controller do 
    ... 
    end 

    index do 
    column "Icon" do |project| 
    # And a couple of other columns. 
    end 
end 

Я в конечном итоге потерять все пользовательские столбцы (например, значок) на этой странице.

Я хочу экспортировать только как вариант PDF на текущей странице, и поэтому я не настроил глобальный инициализатор activeadmin с ссылками на скачивание для XML и PDF.

Итак, может ли кто-нибудь помочь мне разобраться, как я мог бы скачать ссылку для pdf только на моей текущей странице activeadmin.

+0

AFAIK, ActiveAdmin не поддерживает экспорт PDF из коробки. Не могли бы вы рассказать мне, какие у вас настройки для pdf? – baxang

+0

Да, вы правы в этом, я создал собственный PDF-контроллер для рендеринга PDF-файлов, поскольку я хотел, чтобы он мог экспортировать данную страницу в виде PDF-файла. – veepsk

+0

Возможный дубликат [Active Admin view to PDF] (http://stackoverflow.com/questions/16411011/active-admin-view-to-pdf) – baxang

ответ

2

@ sanghyun-парк Это мой контроллер activeadmin,

controller do 
    def index 
     index! do |format| 
     format.html 
     format.pdf { 
     pdf = ProjectPdf.new(@projects) 
     send_data pdf.render, filename: "Project_status.pdf", 
           disposition: "inline" 
     } 
     end 
    end 
    end 

И это модель у меня есть, чтобы сделать PDF документы,

class ProjectPdf < Prawn::Document 
    def initialize(projects) 
     super(top_margin: 50) 
     text "Summary of Projects" , :style => :bold, :size => 20 
     proj_array = [[ "Company Name" , "Project Name", "Project State", 
    "Latest Upload"]] 
     projects.each do |item| 
       proj_array << [ 
       item.company.name.nil? ? "" : item.company.name, 
       item.name, 
       item.project_state.nil? ? "" : item.project_state.name, 
       item.updated_at.strftime("%m/%y/%d \n %l:%M %p") 
       ] 
     end 
    end 

Ваш approach выглядит более кратким и легким для экспорта страницы в PDF в activeadmin.

+0

Спасибо, что поделились своим кодом. Я не использовал Креветку. Креветка, похоже, более точно контролирует формат PDF. Я думаю, WickedPDF проще в использовании, поскольку он конвертирует простые HTML-документы в PDF. – baxang