ActiveAdmin导出为每页的{PDF,XML}自定义链接

时间:2014-02-20 21:28:02

标签: ruby-on-rails activeadmin prawn

我正在使用Rails 3.2.8和activeadmin。我面临的问题是,如果我将exporting的自定义链接设置为pdf(使用Prawn gem)或xml as,

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选项,因此我没有使用XML和PDF的下载链接设置全局activeadmin初始化程序。

那么,任何人都可以帮助我弄清楚如何在我当前的activeadmin页面中获得pdf的下载链接。

1 个答案:

答案 0 :(得分: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看起来更简洁,更容易在activeadmin中将页面导出为PDF。