Send_data不发送pdf(WickedPdf)

时间:2017-08-16 15:01:45

标签: ruby-on-rails wicked-pdf

我正在尝试为用户下载生成pdf。我正在使用WickedPdf gem。

<%= simple_form_for :report, url: [:download, :admin, :reports], format: :pdf, method: :get, remote: true do |f| %>
  <%= f.input :event, collection: @events %> 
  <%= f.input :report_type, collection: [:schedule, :overview] %>
  <%= f.submit "Download" %>
<% end %>



class Admin::ReportsController < Admin::BaseController

  def index
    @events = Event.all
  end

  def download
    respond_to do |format|
      format.pdf do
        pdf = WickedPdf.new.pdf_from_string(pdf_string)
        send_data pdf, :filename => "report.pdf", :type => "application/pdf"
      end
    end
  end

  private

  def pdf_string
    render_to_string(template:'admin/reports/pdf/schedule_overview.html.erb', layout: false)
  end

end

应用程序/视图/管理/报告/ PDF / schedule_overview.html.erb

This is a pdf

(只是文字atm)

请求时的服务器:

Started GET "/admin/reports/download?utf8=%E2%9C%93&report%5Bevent%5D=1&report%5Breport_type%5D=schedule&commit=Download" for ::1 at 2017-08-16 16:18:49 +0100
Processing by Admin::ReportsController#download as JS
  Parameters: {"utf8"=>"✓", "report"=>{"event"=>"1", "report_type"=>"schedule"}, "commit"=>"Download"}
  User Load (0.6ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", 1], ["LIMIT", 1]]
  Rendering admin/reports/pdf/schedule_overview.html.erb
  Rendered admin/reports/pdf/schedule_overview.html.erb (0.8ms)
"***************[\"/Users/jonathansayer/.rvm/gems/ruby-2.4.0/bin/wkhtmltopdf\", \"-q\", \"file:////var/folders/0x/g3xdsy4s48q9y0lpzsppltv80000gn/T/wicked_pdf20170816-33407-4r72d4.html\", \"/var/folders/0x/g3xdsy4s48q9y0lpzsppltv80000gn/T/wicked_pdf_generated_file20170816-33407-1hnp6hr.pdf\"]***************"
  Rendering text template
  Rendered text template (0.1ms)
Sent data report.pdf (1.9ms)
Completed 200 OK in 1803ms (Views: 1.4ms | ActiveRecord: 0.6ms))

但是没有pdf发送到客户端。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我通过删除remote: true

来实现这一目标