Wicked_pdf слишком мало аргументов в демо

Я пытаюсь заставить wicked_pdf работать впервые как проект по изучению RoR, но я столкнулся с проблемой.

Когда я пытаюсь запустить какую-либо из демонстраций, я читал по всему месту, используя format.pdf do команда, я получаю ошибкуToo few arguments"с подсветкой на format.pdf do линия.

Это код:

  def show
    format.pdf do
      render :pdf => "file_name", :template => 'certificates/show.pdf.erb'
    end
  end

Что мне не хватает?

6 ответов

Решение

Попробуйте это.. У меня была такая же проблема.

def show
    #format.pdf do
      render :pdf => "file_name", :template => 'certificates/show.pdf.erb'
    #end
  end

Я верю, что у вас есть gems 'wkhtmltopdf-binary' и 'wicked_pdf' установлены

Окружать

 format.pdf do
      render :pdf => "file_name", :template => 'certificates/show.pdf.erb'
    end

в respond_to блок, что-то вроде:

respond_to do |format|
   format.pdf do
      render :pdf => "file_name", :template => 'certificates/show.pdf.erb'
    end
end

У меня была эта проблема. Вы можете добавить defaults хеш к маршруту и ​​укажите формат.

get "/pdf_name.pdf" => "your_controller#action", as: :pdf_route, defaults: { format: :pdf }

Добавить: макет

render :pdf => "notifications",
        :layout => 'layouts/pdf/layout.html.erb',
        :template => 'notification_compulsories/show.pdf.erb'

Быстрый способ

Установите следующие драгоценные камни

gem 'wicked_pdf'
gem 'wkhtmltopdf-binary'

Используйте какой wkhtmltopdf и укажите путь

Создать символическую ссылку

ln -s path_from_which /usr/local/bin/wkhtmltopdf

Редактировать / Создать злые инициализаторы

WickedPdf.config = {
  #:wkhtmltopdf => '/usr/local/bin/wkhtmltopdf',
  #:layout => "pdf.html",
  :exe_path => '/usr/local/bin/wkhtmltopdf'
}

В вашем контроллере найдите свое действие и

def show
  render pdf: "file_name"   # Excluding ".pdf" extension.
end

У меня была эта проблема, и решение для меня было включить html формат в respond_to блок. это

respond_to do |format|
  format.pdf  { render pdf: "ticket_report" }
end

стало так:

respond_to do |format|
  format.html { render :index }
  format.pdf  { render pdf: "report" }
end
Другие вопросы по тегам