【发布时间】:2021-04-14 18:43:25
【问题描述】:
所以也许这是一个不好的问题,但我正在尝试创建一个 pdf 生成器,它通过 html 视图将数据库中的名称动态地放入 pdf 中。
这是我的控制器的下载功能。
class PdfGeneratorController < ApplicationController
def download
@actual_locale = I18n.locale
I18n.locale = :en
@user = User.find(params[:userid])
@firstname = @user.first_name
@lastname = @user.last_name
html = PdfGeneratorController.new.render_to_string(
{
template: "/pdf_generator/download",
layout: "user_courses/certificate_layout",
}
)
pdf = Grover.new(html, wait_until: 'load').to_pdf
send_data pdf, type: "application/pdf", disposition: 'attachment', filename: 'Certificate.pdf'
I18n.locale = @actual_locale
end
end
如果我在声明@user、@firstname 和@lastname 的位置之后放置一个byebug,它们都会返回正确的数据。在我名为 download.html.erb 的视图中,我像这样使用 @firstname 和 @lastname。
<h2 class="certificate--title"> Demo Certification</h2>
<h4>is proudly presented to</h4>
<h2 class="certificate--acquirer-name"><%= @firstname %> <%= @lastname%> </h2>
但是,当生成 pdf 时,其中没有名称。最后,我用 byebug 进行了测试,@firstname 和 @lastname 在视图中返回为 nil。有什么想法我可能做错了吗?
【问题讨论】:
-
“也许这是个坏问题” – 没有这样的事情 :-)
-
@Stefan:除了这个网站到处都是 :) 可能没有愚蠢的问题(有争议的),但有很多不好的问题:懒惰、难以理解、写得不好等。幸运的是我们,这个问题不是其中之一。
标签: ruby-on-rails ruby