【问题标题】:show record on wicked_pdf on ruby on rails 5?在rails 5上的ruby上显示wicked_pdf上的记录?
【发布时间】:2020-01-30 11:03:51
【问题描述】:

所以我想在 pdf 文件上显示刚刚选择的记录。现在,当我搜索localhost:3000/service_orders.pdf 时,我得到了所有记录,或者只是第一个记录。当单击“打印”按钮时,他们只是给出错误链接。

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

我的文件.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

我的链接按钮在 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

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

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-5 wicked-pdf


    【解决方案1】:

    您没有在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中找到此操作的模板

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多