1

首先,我知道已经发布了此类帖子,但我几乎尝试了所有帖子,但无法获得结果,所以在这里我再次发布相同类型的问题。

其次,我在这里没有资产管道问题,所以请忘记这一点。

现在让我解释一下我在做什么。我正在使用 rails 3.1 和 ruby​​ 1.9.2,我将 wicked_pdf 作为 gem 安装并安装了 wkhtmltopdf,如 wiki 中所述,通过清除已安装的 wkhtml 并将新的 wkhtml 下载并解压缩到 /usr/bin/wkhtmltopdf

我有一个包含以下内容的初始化程序:

wicked_pdf.rb

WickedPdf.config = { :exe_path => '/usr/bin/wkhtmltopdf'}

在我看来,我有一个 link_to 方法如下:

_filters.html.haml

= link_to 'show pdf', jobs_report_jobs_path(:format => :pdf), :method=>"post"

请注意,如果我删除 :format => :pdf 选项它工作正常

在我的控制器中,我正在执行以下操作:

report_jobs_controller.rb

respond_to do |format|
      format.html
      format.js
      format.pdf{
        render :pdf=>"jobs",
        :template => 'jobs.html.erb',
        :layout=>"jobs.html"
      }
end

请注意,我仅从 format.pdf 尝试过,没有任何选项。我尝试了“jobs.pdf.erb”,有无布局选项,还有各种我什至不记得的其他选项。我得到的只是最终不能接受的 406。

请指导我,因为我需要尽快实现此功能。

问候,

4

4 回答 4

1

406 表示请求无效(关于该控制器操作可接受的内容)

我以前遇到过麻烦:format => :pdf。尝试:format => 'pdf'

准系统实现应该是:

format.pdf {
  render :pdf => 'jobs'
}

另外,link_to 真的应该是 :method => "post" 吗?

于 2012-01-30T21:51:47.590 回答
1

我的应用程序控制器中有一个 before_filter,它正在检查具有上述格式的身份验证的每个请求,并且我在那里缺少 pdf 格式,所以只要我将 :pdf 放入每个传入请求的格式列表中,它就可以正常工作。

于 2012-01-31T11:38:26.400 回答
1

我也有同样的问题。我在 ubuntu 上工作。安装 wkhtmltopdf 后,我不再收到此错误。在终端中运行以下命令:

$sudo apt-get install wkhtmltopdf

我希望这有帮助 :)

于 2012-12-08T07:01:41.557 回答
0

我不知道多少wicked-pdf,但我曾经使用过pdfkit,这就是我做渲染部分的方式:

def pdf
  respond_to do |format|
      format.pdf { render :text => PDFKit.new( Pdf.find(params[:id]).content ).to_pdf }
    end
end

我希望代码足够清晰且不言自明。我的视图代码是:

<p><%= link_to "Download PDF", pdf_pdf_path(@pdf, :format => "pdf") %></p>  
于 2012-01-29T19:18:32.420 回答