0

我们正在为 rails 3.1.4 中的虾生成发票 pdf。

  header =[[  "Date", "#", "sample name", "model","lease item", "hours", "$/hour", "Total"]]
  items = @invoice.invoice_items.map do |item|
    [
                item.lease_usage_record.lease_usage_items.map do |li|
                [
                  li.lease_date.strftime("%Y-%m-%d"),
                  item.lease_usage_record_id,
                  li.sample_name,
                  li.sample_model_num,
                  li.lease_item.short_name,          
                  li.total_hour,
                  li.charge_rate,
                  li.subtotal
                ]
                end
    ] 
  end
items = header + items
pdf.table items, :header => true, :width => 480 
t = pdf.make_table([ ["                                                       ", "Total:     ","    #{@invoice.total}"] ])
t.draw

它适用于一个问题。问题是所有数据单元都被压缩到第一列,即“日期”。试图在标题中再添加一个 [] 并生成“数据是二维数组......”的错误。如何在其标题下正确对齐每一列?非常感谢。

4

1 回答 1

0

通过将数据(项目)的维度减少到二维来解决该问题。大虾只能取二维数据。以下行可以解决问题:

items = items.flatten(2)
于 2012-08-07T22:57:51.777 回答