Я хотел бы создать PDF-файл из модели, используя драгоценный камень креветок. Ниже мое решение, но оно вызывает ActionController::Base.new()
изнутри модели.
В настоящее время работает приведенный ниже код. Есть ли предложение для лучшего способа сделать это? 1006 * это?
class Certificate < ApplicationRecord
has_one_attached :pdf
def self.generate_for(student)
@user = student
certificate = student.build_certificate()
action_controller = ActionController::Base.new()
template_string = action_controller.render_to_string template: 'certificates/certificate'
io = StringIO.new template_string
certificate.pdf.attach(
io: io,
filename: "filename",
content_type: 'application/pdf',
identify: false
)
certificate.save
end
end