Не удается получить доступ к методу root_url при создании файла PDF в автономном режиме с помощью WickedPdf

Мы используем WickedPdf, оболочку wkhtmltopdf, для создания большинства наших PDF-файлов на экране, поскольку мы можем использовать один и тот же файл .haml как для HTML, так и для PDF-версий.

Я хотел бы создать некоторые файлы PDF, которые будут сохранены для будущего использования. Мы уже делаем что-то подобное в почтовой программе для создания и прикрепления PDF. Это отлично работает...

# mailer
pdf = WickedPdf.new.pdf_from_string(render_to_string('account/customer_invoices/show_pdf.html', :layout => 'pdf'))
attachments["invoice.pdf"] = pdf

Но когда я пробую тот же трюк из модели вместо почтовой программы, я получаю следующую ошибку...

ActionView::Template::Error:
   undefined method `root_url' for #<#<Class:0x007fad308a8538>:0x007fad308a83d0>

Стандартный ответ, который я видел для доступа к root_url из модели, состоит в том, чтобы добавить следующее, но это не работает, поскольку я фактически обращаюсь к нему из представления, а не из модели.

include Rails.application.routes.url_helpers

person Simmo    schedule 31.12.2015    source источник


Ответы (1)


Если я правильно понимаю, вы вызываете root_url в представлении.

Попробуйте изменить это на

Rails.application.routes.url_helpers.root_url
person Barna Kovacs    schedule 31.12.2015