2017-07-26 84 views
0
def foo  
    respond_to do |format| 
    format.html { render layout: 'application' } 
    format.pdf { 
     render pdf: 'foo', layout: 'pdf' 
    } 
    end 
end 

如果我只把hello worldfoo.pdf.erb它的作品!如何用wicked_pdf gem如何使用html view/partial to pdf view?

但現在如果我想使用HTML視圖,反覆我的模型(從DB),如:

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

它所行的作品,頁面停留的灰色,在日誌中沒有錯誤...

如果我評論這條線,hello world再次運作。

所以issu是關於使用html partial:我們如何在pdf視圖中使用正常的html視圖?

回答

1

我試圖在Wicked PDF issues projectthis commit中重現您的問題,併成功地完成了您在此展示的內容,但有一點需要注意。

使用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 } %>