Сохраните PDF с Active Storage и драгоценным камнем wicked_pdf - PullRequest
1 голос
/ 01 мая 2020

Мне нужно сохранить PDF, используя гем wicked_pdf и Active Storage, к сожалению, я этого не достиг.

Это очень простой сценарий, мне нужно создать PDF и сохранить объект в том же обработать. PDF создается из представления.

@user = User.new(user_params)
view_string = render_to_string("user_pdf_view")
pdf = WickedPdf.new.pdf_from_string(view_string)
io_pdf = StringIO.new(pdf)

@user.pdf.attach(io: io_pdf,
                 filename: "user_filename",
                 content_type: 'application/pdf')

Если объект не сохраняется, я получаю эту ошибку:

*** NameError Exception: uninitialized constant #<Class:0x00007ff6b30b3c98>::Analyzable
Did you mean?  ActiveStorage::Analyzer

И если объект уже сохранен, я получаю это one:

*** NoMethodError Exception: undefined method `build_after_unfurling' for #<Class:0x00007ff6b30b3c98>
enter code here

В соответствии с документами активного хранилища , можно прикрепить объект IO. Я также попытался использовать File и Tempfile вместо StringIO, но с тем же результатом.

Я просматриваю исходный код AS, чтобы увидеть, что происходит, но было бы здорово, если бы кто-то прошел через это раньше и может помочь мне подняться.

Спасибо!


РЕДАКТИРОВАТЬ:

Обновление: я только что понял, что если я изменю config.eager_load на true. .. ошибка больше не происходит.

...