Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 弃用警告:您';正在尝试创建属性'info';,在Rails 3.2.8中_Ruby On Rails 3_Prawn - Fatal编程技术网

Ruby on rails 3 弃用警告:您';正在尝试创建属性'info';,在Rails 3.2.8中

Ruby on rails 3 弃用警告:您';正在尝试创建属性'info';,在Rails 3.2.8中,ruby-on-rails-3,prawn,Ruby On Rails 3,Prawn,我正试图通过Prawn将pdf生成添加到我的Rails 3应用程序中。我遵循Railscast,一切都很顺利,直到我尝试将一个实例变量从我的控制器传递到我创建的一个单独的类 控制器操作如下所示: def show #shows some material @material = Material.find(params[:id]) respond_to do |format| format.html format.pdf do pdf = MaterialPdf.new(@mat

我正试图通过Prawn将pdf生成添加到我的Rails 3应用程序中。我遵循Railscast,一切都很顺利,直到我尝试将一个实例变量从我的控制器传递到我创建的一个单独的类

控制器操作如下所示:

def show #shows some material
@material = Material.find(params[:id])
respond_to do |format|
  format.html
  format.pdf do
    pdf = MaterialPdf.new(@material)
    send_data pdf.render, filename: "material_#{@material.id}.pdf", 
                          type: "application/pdf",
                          disposition: "inline"
  end
end
class MaterialPdf < Prawn::Document
  def initialize(material)
    super
    @material = material
    text "Placeholder text"
  end
end
结束

而material_pdf.rb文件如下所示:

def show #shows some material
@material = Material.find(params[:id])
respond_to do |format|
  format.html
  format.pdf do
    pdf = MaterialPdf.new(@material)
    send_data pdf.render, filename: "material_#{@material.id}.pdf", 
                          type: "application/pdf",
                          disposition: "inline"
  end
end
class MaterialPdf < Prawn::Document
  def initialize(material)
    super
    @material = material
    text "Placeholder text"
  end
end

这很奇怪,因为查询看起来很好,我没有尝试创建属性“info”。我不明白。帮助。

正是对虾试图创建该属性:

我认为这可以更好地解释:

不管怎样,我觉得你打错电话了。Document.new采用选项哈希:

def initialize(options={},&block)
因此,您需要将其而不是材质实例传递给超类:

class MaterialPdf < Prawn::Document
  def initialize(material, prawn_opts = {})
    super(prawn_opts)
    @material = material
    text "Placeholder text"
  end
end
class MaterialPdf