wicked_pdf с рельсами 3.1 и ruby ​​1.9.2 - PullRequest
1 голос
/ 29 января 2012

Прежде всего, я знаю, что сообщения такого типа уже созданы, но я перепробовал почти все из них и не смог получить результаты, поэтому здесь я снова публикую такой же вопрос.

Во-вторых, у меня нет проблемы с конвейером активов, поэтому, пожалуйста, забудьте об этом.

Теперь позвольте мне объяснить, что я делаю. Я использую rails 3.1 и ruby ​​1.9.2, я установил wicked_pdf в качестве драгоценного камня и установил 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 ]

1 голос
/ 08 декабря 2012

У меня тоже была такая же проблема. Я работаю над Ubuntu. После того, как я установил wkhtmltopdf, я больше не получаю эту ошибку. в терминале выполните команду ниже:

$sudo apt-get install wkhtmltopdf

Надеюсь, это поможет:)

1 голос
/ 31 января 2012

406 означает, что запрос недействителен (в отношении того, что является приемлемым для этого действия контроллера)

У меня были проблемы с :format => :pdf ранее.Попробуйте :format => 'pdf'

Базовая реализация должна быть просто:

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

Кроме того, действительно ли link_to должно быть: method => "post"?

1 голос
/ 31 января 2012

У меня в контроллере приложения был before_filter, который проверял каждый запрос с указанным форматом для проверки подлинности, и мне не хватало там формата pdf, поэтому, как только я поместил: pdf в список форматов для каждого входящего запроса, он работал хорошо.

0 голосов
/ 29 января 2012

Я не знаю сколько о 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>  
...