Что делать с "не является ActiveModel-совместимым объектом. Он должен реализовывать: to_partial_path." ошибка при попытке использовать render_to_string в PORO - PullRequest
1 голос
/ 27 февраля 2020

Я реорганизовал часть своего кода, который генерирует PDF, в отдельный класс, который находится в / lib. Проблема в том, что класс зависит от метода render_to_string из ActionController::Base.

Код довольно прост:

 class Pdf
    def pdf_content(record)
      render_to_string(
        partial: 'pdf/content.pdf.haml',
        layout: 'pdf/application.pdf.erb',
        locals: { record: record.decorate }
      )
    end

    def render_to_string(*params)
      ActionController::Base.new.render_to_string(params)
    end
  end

Когда я пытаюсь вызвать класс Pdf.new.pdf_content(record), я получаю сообщение об ошибке: is not an ActiveModel-compatible object. It must implement :to_partial_path.

Спасибо!

...