whkpdf дает ActionController::UnknownFormat ошибка в рельсах

Я пытаюсь интегрировать wicked_pdf в мое приложение rails 4. Как бы то ни было, у меня ошибка UnknownFormat.

В файле gem я добавил

  gem 'wicked_pdf'

В контроллере моих студентов у меня есть метод show, как показано ниже:

   controllers/students_controllers

   respond_to :html, :js, :pdf

   def show
     @student = Student.find(params[:id])
     respond_to do |format|
       format.pdf do
         render :pdf => "students",:template => "students/show_pdf"
       end
   end

Тогда у меня есть шаблон show_pdf.pdf.erb в папке просмотра моих студентов. Как всегда я добавил Wicked_pdf engin путь в

initializers/wicked_paf.rb 

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

Я также добавил MIME-тип для PDF в initilizers / mime_type.rb

  initializers/mime_type.rb

  Mime::Type.register "application/pdf", :pdf

Но везения нет. Я получил ошибку неизвестного формата.

  ActionController::UnknownFormat at /students/1
  ActionController::UnknownFormat

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

Заранее спасибо.

2 ответа

Решение
  1. Вам не нужно добавлять "pdf" как новый mime_type в Rails 4 (он уже есть).

  2. В вашем file_path есть опечатка: "initializers/wicked_paf.rb" вместо "initializers/wicked_pdf.rb".

  3. Попробуйте изменить #show в контроллере следующим образом:

    def show
        respond_to do |format|
          format.html
          format.pdf do
            render :pdf => "students"
          end
        end
    end
    

Конечно, вам нужно сделать правильное представление для него в вашем app / views / Students/show.html.erb.

Убедитесь, что у вас есть format: 'pdf' в вашей ссылке:

link_to 'My PDF', print_pdf_path, format: 'pdf'

Вам необходимо добавить.pdf в вашу конечную точку: Пример: api/reports/1.pdf

Другие вопросы по тегам