只要有时间,我已经使用 Rails 工作了几个星期了。我正在尝试创建应用程序当前显示的数据的 PDF 输出。我正在使用 prawn,它工作正常并且 will_paginate。是否可以将屏幕上显示的当前数据(例如所选页面)发送到 pdf 输出?
index.html.erb
:
<% @truckdeliveries.each do |truckdelivery| %>
...
<% end %>
<%= will_paginate @truckdeliveries %>
<%= link_to "PDF", truckdeliveries_path(@truckdelivery ,format: "pdf") %>
truckdeliveries_controller.rb
:
class TruckdeliveriesController < ApplicationController
def index
@truckdeliveries = Truckdelivery.paginate page: params[:page], order: 'created_at desc',
per_page: 10
respond_to do |format|
format.html # index.html.erb
format.json { render json: @truckdeliveries }
format.pdf do
pdf = TruckdeliveryPdf.new(@truckdeliveries)
send_data pdf.render, filename: "truckdelivery_.pdf",
type: "application/pdf"
end
end
end
...
这工作正常,但它只显示第一页的数据,如果我切换到另一个页面,它不会改变。我尝试将 link_to 更改为 @truckdeliveries,但这只会创建一个神秘链接。
我尝试过 Google,但在使用正确的流行语方面仍然遇到困难。因此,任何建议将不胜感激!
最佳答案
在我看来,它只打印第一页的原因是因为您的 PDF 链接不包含页面参数。试试这个。
<%= link_to "PDF", truckdeliveries_path(:format => "pdf", :page => params[:page]) %>
关于ruby-on-rails - rails 3.1 : Output current data from will_paginate to PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8078717/