У меня есть сервис, который генерирует epubs, поэтому мне нужно сгенерировать файл css для встраивания в epub.
Я создал представление css в epub/style.css.erb
, но логика в сервисе ине в контроллере, кажется нет возможности позвонить render_to_string
.На самом деле, сервис заключен в задание sidekiq, которое также может вызываться из after_update
из модели, так что это является дальнейшим препятствием для render_to_string
.
Я мог бысоздать как EpubController
и вызвать метод render_to_string
оттуда.Но из моего сервиса, расположенного в app/services/epub_export.rb
, как я могу отправить параметры на / получить выходные данные от контроллера?Таким образом, он пахнет, как если бы я сломал схему MVC.
Но мне также не нравится классический способ, например
File.open(@css_path, 'w') do |f|
f.puts "@charset utf-8;"
f.puts "/* Styles for GEPUB Sample Book */"
f.puts "h1"
f.puts "{"
f.puts " text-align: center;"
f.puts " color: #0000ff;"
f.puts " font-weight: normal;"
f.puts " font-family: #{@font_family};"
f.puts "}"
end
Или есть альтернатива этому?