gpt4 book ai didi

ruby - 如何使用 html view/partial to pdf view with wicked_pdf gem?

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

def foo    
respond_to do |format|
format.html { render layout: 'application' }
format.pdf {
render pdf: 'foo', layout: 'pdf'
}
end
end

如果我只将 hello world 放入 foo.pdf.erb 中,它就可以工作!

但现在如果我想使用 html View 来迭代我的模型(来自数据库),例如:

<p>hello world</p>    
<%= render @foo.chapters.order(number: :asc) %>

它确实有效,页面保持灰色,日志中没有错误...

如果我注释掉这一行,hello world 会再次工作。

所以问题是关于使用 html partial :我们如何在 pdf View 中使用普通的 html View ?

最佳答案

我试图在 this commit 中重现您的问题的 Wicked PDF issues project并成功完成了您在此处展示的内容,但有一个小警告。

使用 Rails 模型渲染速记:

# assuming @books = Book.all or some collection of Book objects
<%= render @books %>

它将尝试使用请求的扩展来呈现该集合。

意思是,对于 html 请求,它将尝试在以下位置呈现模板:

app/views/books/_book.html.erb

对于 PDF 请求,它将尝试呈现

app/views/books/_book.pdf.erb

我通过将我的部分重命名为解决了这个问题:

app/views/books/_book.erb

因此无论是 HTML 还是 PDF 请求,它都会被使用。

如果这在您的情况下不起作用,您可以创建一个新的 PDF 部分,它会像这样呈现 HTML:

# app/views/books/_book.pdf.erb
<%= render partial: '/books/book',
formats: [:html],
locals: { book: book } %>

关于ruby - 如何使用 html view/partial to pdf view with wicked_pdf gem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45329522/

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