【发布时间】:2015-09-12 08:40:08
【问题描述】:
我正在尝试将一个变量从模型传递给 render_to_string。
这个问题类似于How to pass variable to render_to_string?
我已阅读该问题的答案。我正在尝试使用locals。但是,我仍然无法让它工作。
这是我的型号代码:
pdf2 = CostprojectsController.new.render_to_string pdf: "Captital Projects.pdf", template: "costprojects/viewproject", encoding: "UTF-8", locals: {:@costproject => @costproject}
但是,在costprojects/viewproject 视图中,@costproject 为 nil,costproject 为 nil
我试过了:
locals: {costproject: @costproject}
locals: {@costproject: @costproject}
locals: {:costproject => @costproject}
感谢您的帮助!
UPDATE1(感谢您的帮助)
我试过这个(添加括号):
pdf2 = CostprojectsController.new.render_to_string(pdf: "Captital Projects.pdf", template: "costprojects/viewproject", encoding: "UTF-8", locals: {costproject: @costproject})
我在pdf2之前添加了这一行
raise @costproject.inspect
我得到了:
#<Costproject id: 9, project_name: ...
在视图中,传递的var应该是@costproject
【问题讨论】:
-
尝试使用括号:
CostprojectsController.new.render_to_string(pdf: "Captital Projects.pdf", template: "costprojects/viewproject", encoding: "UTF-8", locals: { costproject: @costproject }) -
正确的调用应该是 pdf2 = CostprojectsController.new.render_to_string(template: "costprojects/viewproject", encoding: "UTF-8", locals: {costproject: @costproject}) - 是@调用render_to_string时正确设置了costproject var? - 你能用'layout: nil'选项试试这个电话吗?
标签: ruby-on-rails