whkpdf在rails中给出ActionController :: UnknownFormat错误

use*_*484 3 ruby-on-rails wicked-pdf

我正在尝试将wicked_pdf集成到我的rails 4应用程序中.我怎么会遇到UnknownFormat错误.

在我添加的gem文件中

  gem 'wicked_pdf'
Run Code Online (Sandbox Code Playgroud)

在我的学生控制器中我有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
Run Code Online (Sandbox Code Playgroud)

然后我在学生的viewsfolder中有show_pdf.pdf.erb模板.我怎么能添加Wicked_pdf engin路径

initializers/wicked_paf.rb 

WickedPdf.config = {
   :exe_path => '/usr/bin/wkhtmltopdf'
}
Run Code Online (Sandbox Code Playgroud)

我还在initilizers/mime_type.rb中为pdf添加了mime类型

  initializers/mime_type.rb

  Mime::Type.register "application/pdf", :pdf
Run Code Online (Sandbox Code Playgroud)

但没有运气.我收到了unknownformat错误.

  ActionController::UnknownFormat at /students/1
  ActionController::UnknownFormat
Run Code Online (Sandbox Code Playgroud)

我不知道这个错误的原因.请帮我找出问题所在.

提前致谢.

Red*_*lin 6

  1. 您不必在Rails 4中添加"pdf"作为新的mime_type(它已经存在).

  2. 你的file_path中有一个拼写错误:"initializers/wicked_pa​​f.rb"而不是"initializers/wicked_pdf.rb".

  3. 尝试以这种方式更改控制器中的#show:

    def show
        respond_to do |format|
          format.html
          format.pdf do
            render :pdf => "students"
          end
        end
    end
    
    Run Code Online (Sandbox Code Playgroud)

当然,您需要在"app/views/students/show.html.erb"中为其制作正确的视图.