You are trying to call an instance method ( create_pdf ) from a class method ( self.perform ). Your code will only work if your DocumentHelper defined by create_pdf as a class method:
def self.create_pdf
If you don't need access to create_pdf in your views, you can move it to your Document class instead as an instance method, and then you can do @doc.create_pdf(pdf) .
However, if you need access to create_pdf in your views, you can put module_function :create_pdf inside your DocumentHelper file or you can dynamically add this to your working one:
DocumentHelper.module_eval do module_function(:create_pdf) end DocumentHelper.create_pdf(pdf)
Then you can correctly call DocumentHelper.create_pdf .
Also, in Rails 3, it seems to me that you only need to include DocumentHelper , and not include ActionView::Helpers::DocumentHelper .
source share