0

Rails3.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

それは問題を抱えて動作します。問題は、すべてのデータセルが「日付」である最初の列に圧縮されることです。ヘッダーにもう1つ[]を追加しようとすると、「データは2次元配列です...」というエラーが発生しました。各列をヘッダーの下に正しく配置するにはどうすればよいですか?本当にありがとう。

4

1 に答える 1

0

この問題は、データ(アイテム)の次元を2次元に減らすことで解決されました。エビは2次元データしか取得できません。次の行はトリックを行います:

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