我正在尝试扩展 Prawn::Document,但它为 # 提出了一个未定义的方法 `prawn_document'。
我的课看起来像这样:
require "open-uri"
require 'prawn'
require 'prawn/core'
require 'prawn/layout'
class M < Prawn::Document
def initialize(options)
options && options.merge!({:inline=>true})
create_instance_variables(options.delete(:variables))
super(options)
end
def render_template(template)
pdf = self
pdf.instance_eval do
eval(template) #this evaluates the template with your variables
end
ensure_path
pdf.render_file(File.join(output_path,filename))
end
private
def create_instance_variables(vars)
return if vars.blank?
vars.each_pair do |k,v|
instance_variable_set("@#{k}", v)
end
end
def output_path
@output_path ||= File.join(Rails.root,'tmp','documents')
end
def ensure_path
FileUtils.mkdir_p(output_path)
end
def filename
@output_file ||= "#{Process.pid}::#{Thread.current.object_id}.pdf"
end
end
有人可以帮我解决这个问题吗?
非常感谢。