1

まず第一に、私はこのタイプの投稿がすでに行われていることを知っていますが、私はそれらのほとんどすべてを試しました、そして私は結果を得ることができませんでした、それでここで私は再び同じ種類の質問を投稿します。

第二に、私はここでアセットパイプラインの問題を抱えていないので、それを忘れてください。

それでは、私が何をしているのかを説明しましょう。Rails3.1とruby1.9.2を使用しています。wikiに記載されているように、wicked_pdfをgemとしてインストールし、wkhtmltopdfをインストールしました。これには、既にインストールされている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 形式がありませんでした。

于 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 に答える