在 rails 5 上 ruby 上显示 wicked_pdf 上的记录?

show record on wicked_pdf on ruby on rails 5?

所以我想在 pdf 文件中显示刚刚选择的记录。现在我得到了所有记录,或者当我搜索 localhost:3000/service_orders.pdf 时只是第一个。当点击按钮 "print" 时,他们只是给出错误 link 这个。

ServiceOrdersController#show is missing a template for this request format and variant.

我的file.pdf.erb:

<%  @service_order ||= ServiceOrder.find(params[:id]) do |service_order| %>
    <td> <%= service_order.number %> </td> ...
    %< end %>

我的服务订单控制器:

     def index
        @service_orders = ServiceOrder::Collector.call(params: params.permit!.to_h)
        respond_to do |format|
          format.html
          format.json
          format.pdf {render :pdf => "service_orders/file",
          :template => '/file', formats: :html, encoding: 'utf8'}
        end
      end
    ...
    ...
   def show
     @service_order = ServiceOrder.find(params[:id])
   end

我的 link 按钮已打开 show.html.erb

<%= link_to 'Print', service_order_path(@service_order, :format => :pdf),:format => :pdf,  class:"button-show "%>

当然我的 mimi_types.rb 文件包括 Mime::Type.register "application/pdf", :pdf

我一直在寻找互联网,最接近的是这个。我希望有人遇到同样的问题。

您没有在 show 操作中指定格式,因此默认情况下它会尝试呈现 html 模板。您必须添加:

   def show
     @service_order = ServiceOrder.find(params[:id])
     respond_to do |format|
          format.html
          format.json
          format.pdf do 
            render pdf: "name_of_template",
            some other options
          end
        end
   end

并在 views/service_orders/show.pdf.erb

中找到此操作的模板