gpt4 book ai didi

ruby-on-rails - render_to_string 找不到部分(PDFKit Controller 响应)

转载 作者:行者123 更新时间:2023-12-03 23:22:26 26 4
gpt4 key购买 nike

Ruby 1.8.7、Rails 3.0.4、PDFKit 0.5.0

我正在尝试在不使用中间件的情况下使用 PDFKit 创建一个 PDF,因此我可以禁用 javascript(那里有一个 Accordion Action ,它隐藏了很多应该在 PDF 上的信息)。但是,每当我尝试时,它都会失败,因为它说我的 View (show.html.erb)中的部分缺失:

Missing partial programs/details with {:locale=>[:en, :en], :formats=>[:pdf], :handlers=>[:erb, :rjs, :builder, :rhtml, :rxml]}



如果我删除对部分的引用,它工作正常。我也尝试将部分放在与 show.html.erb 相同的目录中,但无济于事。这是我的 Controller 显示操作中的代码:
respond_to do |format| 
format.html # show.html.erb
format.pdf {
html = render_to_string(:template => "show.html.erb")
kit = PDFKit.new(html, :disable_javascript => true )
send_data(kit.to_pdf, :filename => "test_pdf", :type => "application/pdf", :disposition => 'attachment')
}
end

有没有办法做到这一点并保留部分?

编辑:现在我已经这样做了:
# config/initializers/pdfkit.rb
PDFKit.configure do |config|
config.default_options = {
:page_size => 'Legal',
:print_media_type => true,
:disable_javascript => true
}
end

这样做的缺点是为我生成的每个 PDF 都关闭了 javascript,但现在就可以了。关于让部分仍然与 render_to_string 一起工作的原始问题的任何答案仍然值得赞赏。

最佳答案

您也可以设置:formats对于 render_to_string以防止不得不更改您的部分名称。

html = render_to_string(:layout => false , :action => "show", :formats => :html)

这会强制 html 而不是 pdf 格式用于 View 渲染的剩余部分。允许您在不更改 HTML 和 PDF 响应的情况下使用相同的 View /部分。

关于ruby-on-rails - render_to_string 找不到部分(PDFKit Controller 响应),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5399458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com