1

我有一组静态的帮助页面,我在 Rails 3.2 应用程序中使用了 Thoughbots 高压 gem。我只是以“香草”的方式使用它,而不通过控制器提供 html 页面。

背景

我最初尝试自己调整 Michael Hartl 关于静态页面的教程 - 即我有一组带有自己控制器的静态页面,我试图在静态页面视图下创建一个子目录,但无法获得我的路由上班,所以谷歌搜索显示了Thoughtbots High-Voltage gem。

愿望

我想要的是推荐使用 Thoughtbots High-Voltage gem 生成 PDF 文件的最佳 gem 或方法。

有人做过吗?

我希望能够在 heroku 上托管这个,所以如果有任何gotacha's我想预先了解这些。

我当前的实现是一个基本的 Rails 3.2 应用程序,安装了 High-Voltage gem 并在 pages 子目录下有许多视图。

  • 页面/帮助/用户
  • 页面/帮助/产品
  • 页面/帮助/订单

我的 html 页面中有图像,不确定这是否会导致并发症。

编辑:根据提供的答案添加控制器,因为 Rails 3.2.3 上的 wicked_pdf 和 Lion 上的 ruby​​ 1.9.3-p125 仍然存在问题

class PagesController < HighVoltage::PagesController
def show
  respond_to do |format|
    format.html do
      super
    end
    format.pdf do
      #render :pdf => "pdf_file" # wicked_pdf syntax here
      render :pdf => :id,
             :layout => 'application',
             #:template => 'help/products/product_tolerance.html.erb',
             :template => 'pages/#{:id}.html.erb',
             :show_as_html => params[:debug],
             :footer => {
                :left => "Generated on @now",
                :centre => "Centre",
                :right => "Page # of page(s)"
             }        
      end
    end
  end
end

路由文件包含:

match "/pages/*id" => 'pages#show', :as => :page, :via => :get, :format => false

:format 应该是真的吗?在控制器和高电压中?

4

1 回答 1

0

如此处所述覆盖高压页面控制器: https ://github.com/thoughtbot/high_voltage#override

然后安装pdfkitwicked_pdf(html 到 pdf 转换器)并将它们连接到该控制器以创建 PDF 版本:

class PagesController < HighVoltage::PagesController
  def show
    respond_to do |format|
      format.html do
        super
      end
      format.pdf do
        render :pdf => "pdf_file" # wicked_pdf syntax here
      end
    end
  end
end
于 2012-05-22T21:17:13.557 回答