Я использую PDFkit в своем контроллере, чтобы создать серию PDF-файлов, заархивировать их и отправить пользователю.
Чтобы управлять стилями вывода, я сообщаю PDFKit, какие таблицы стилей использовать при создании контента. Мне нужно передать ссылку на файл файла CSS. Поскольку Rails теперь компилирует и переименовывает мои таблицы стилей, я не уверен, как ссылаться на скомпилированный ресурс CSS внутри моего контроллера.
Вот что я делал:
InvoicesController < ApplicationController
def download
kit = PDFKit.new(render_to_string(:show, :layout => false))
kit.stylesheets << "#{Sass::Plugin.options[:css_location]}/application.css"
kit.to_file("#{file_date_string}.pdf")
# snip
end
end
Sass::Plugin.options[:css_location] теперь возвращает неверное местоположение, не говоря уже о том, что application.css больше не является допустимым именем файла. Я должен упомянуть, что у меня есть файл app/assets/application.css, который служит манифестом для моих файлов SCSS, и он корректно работает в моих представлениях с помощью метода stylesheet_link_tag().
В основном то, что я ищу, - это контроллер, эквивалентный assets_path(), чтобы сделать что-то вроде этого:
kit = PDFKit.new(render_to_string(:show, :layout => false))
kit.stylesheets << asset_path('application.css')
kit.to_file("#{file_date_string}.pdf")
Кто-нибудь может помочь?