Проблемы при создании PDF с использованием Wicked и Rails API

Я пытаюсь создать загружаемый PDF-файл с помощью Wicked и Rails API. На данный момент я могу загрузить только PDF-файл, но содержимое пустое, а имя файла - response.pdf.pdf.

Это метод, который я использую для создания PDF-файла, когда выполняется запрос GET с определенной оценкой.

def download_pdf(score)
    html = render_to_string(:action => :show, :layout => "pdf.html.erb", :template => "scores/show.pdf.erb", locals:{:score => score}) 
    pdf = WickedPdf.new.pdf_from_string(html) 

    send_data(pdf,  
      :filename => 'test.pdf',
      :disposition => 'attachment')
end

person William Shanks    schedule 23.11.2016    source источник


Ответы (1)


Я столкнулся с этой проблемой сегодня. Довольно поздно, но будет полезно для людей, которые ищут решение этой проблемы.

Вам нужно будет наследовать от ActionController :: Base, а не от ActionController :: API. Или вы можете переопределить render_to_string с помощью следующего кода.

def render_to_string(*args)
  controller = ActionController::Base.new
  controller.locale = I18n.locale
  controller.render_to_string(*args)
end

ссылка: https://github.com/mileszs/wicked_pdf/issues/652

person yogi_bear    schedule 18.01.2019