Отсутствует шаблон при прикреплении pdf к actionmailer и wicked pdf - PullRequest
0 голосов
/ 22 января 2020

Я получаю отсутствующий шаблон при попытке отправить электронное письмо с вложением в формате PDF:

Контроллер

   respond_to do |format|
      format.html
      format.pdf do 
        render pdf: "job card ##{@bike_service.id} - #{DateTime.now}", :template => 'bike_services/show.html.erb' # Excluding ".pdf" extension.
      end
    end

    BikeServiceMailer.job_card_pdf_email(BikeService.last.id).deliver_now
  end

Mailer

    def job_card_pdf_email(bike_service_id)
        bike_service = BikeService.find(bike_service_id)
        attachments["bike_service_#{bike_service.id}-#{DateTime.now}.pdf"] = WickedPdf.new.pdf_from_string(
        render_to_string(pdf: 'bike_service', template: File.join('app', 'views', 'bike_services', 'show.pdf.erb'), layout: 'pdf.html')
        )
        mail(to: todo.owner.email, subject: 'Your job card PDF is attached', bike_service: bike_service)
    end

The show.pdf.erb шаблон уже есть.

1 Ответ

1 голос
/ 22 января 2020

Я думаю, вам нужно изменить строку render_to_string на:

render_to_string(pdf: 'bike_service', template: File.join('bike_services', 'show.pdf.erb'), layout: 'pdf.html')

или

render_to_string(pdf: 'bike_service', template: Rails.root.join('app', 'views', 'bike_services', 'show.pdf.erb'), layout: 'pdf.html')

В данный момент, я думаю, система ищет app/views/bike_services/show.pdf.erb в /Users/vangama/projects/mm-crm/app/views который фактически /Users/vangama/projects/mm-crm/app/views/app/views/bike_services/show.pdf.erb, который не существует.

...