Ruby on rails 3 弃用警告:您';正在尝试创建属性'info';,在Rails 3.2.8中
我正试图通过Prawn将pdf生成添加到我的Rails 3应用程序中。我遵循Railscast,一切都很顺利,直到我尝试将一个实例变量从我的控制器传递到我创建的一个单独的类 控制器操作如下所示: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
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