PRAWN - 同一列中的两个变量

时间:2015-08-24 11:02:18

标签: ruby-on-rails ruby prawn

我希望有一个Prawn PDF,其中包含一个包含两个变量的列。这是我的表定义:

def transactions_table
  grid([3,0], [14,3]).bounding_box do
    data = [%w(Date Description Amount)]
    data += @rows.map{|r| [r.value_date, r.description, r.amount, r.credit]}
    options = { header: true, width: 520, 
        column_widths: {0 => 100, 2 => 200},
        row_colors: ['EEEEEE', 'FFFFFF']}
    table(data, options) do 
      cells.padding      = 5
      cells.border_width = 0.5
      cells.border_color = BLACK

      row(0).font_weight = 'bold'
      row(0).border_color = BLACK

      column(2).align = :right
    end
  end
end

如您所见,共有四列value_datedescriptionamountcredit。我希望在同一列中包含amountcredit,但是,我不确定如何执行此操作。简单地删除逗号不起作用。是否有人可以有人填写我。谢谢。

3 个答案:

答案 0 :(得分:2)

您可以将两个值组合在一个字符串中,例如使用字符串插值。

data += @rows.map{|r|
 [r.value_date, r.description, "#{r.amount} #{r.credit}"]
}

答案 1 :(得分:1)

您可以使用+运算符连接两个字符串。我不确定您要加入的值是否为字符串,但您可以确保它们采用to_s方法:

data += @rows.map{|r| [r.value_date, r.description, r.amount.to_s + ' ' + r.credit.to_s]}

答案 2 :(得分:0)

我能想出的最佳解决方案是删除边框:

    column(3).borders = [:top, :right, :bottom]
    column(2).borders = [:top, :left, :bottom]