Мы используем 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