每当我有空的时候,我一直在使用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,但这只会创建一个神秘链接。
我试过谷歌,但我仍然无法使用正确的流行语。所以任何建议都会非常感激!
答案 0 :(得分:3)
在我看来,只打印第一页的原因是因为您的PDF链接不包含页面参数。试试这个。
<%= link_to "PDF", truckdeliveries_path(:format => "pdf", :page => params[:page]) %>