Rails 3.1:将当前数据从will_paginate输出到PDF

时间:2011-11-10 11:20:55

标签: ruby-on-rails ruby-on-rails-3 will-paginate prawn

每当我有空的时候,我一直在使用rails几周。我正在尝试创建当前显示的应用程序数据的PDF输出。我正在使用虾,它工作正常,并且会使用。是否可以将屏幕上显示的当前数据(例如所选页面)发送到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,但这只会创建一个神秘链接。

我试过谷歌,但我仍然无法使用正确的流行语。所以任何建议都会非常感激!

1 个答案:

答案 0 :(得分:3)

在我看来,只打印第一页的原因是因为您的PDF链接不包含页面参数。试试这个。

<%= link_to "PDF", truckdeliveries_path(:format => "pdf", :page => params[:page]) %>