数据必须是可单元格对象的二维数组
data must be a two dimensional array of cellable objects
我正在尝试使用条件在 table 中打印一些数据,但是 returns 出现以下错误:数据必须是可单元格对象的二维数组
data = [["Lançamento"]]
data += @lancamentos.map do |lancamento|
if lancamento.tipo == 'DESPESA'
[
lancamento.descricao_lancamento, lancamento.valor
]
end
end
pdf.table data
应明确删除空映射单元格:
data = [["Lançamento"]]
data += (
@lancamentos.map do |lancamento|
if lancamento.tipo == 'DESPESA'
[lancamento.descricao_lancamento, lancamento.valor]
end
end.compact # ⇐ HERE
)
pdf.table data
it returns the following error: data must be a two dimensional array of cellable objects
您收到此错误是因为您的 data
数组包含 nil
个值。
考虑这个例子:
[1, 2, 3, 4, 5].map { |i| [i] if i.odd? }
#=> [[1], nil, [3], nil, [5]]
而你想要 [[1], [3], [5]]
.
因为你已经有一个 data
变量,你可以使用 each
而不是 map
:
data = [["Lançamento"]]
@lancamentos.each do |lancamento|
if lancamento.tipo == 'DESPESA'
data << [lancamento.descricao_lancamento, lancamento.valor]
end
end
pdf.table data
或者您可以组合使用 select
和 map
:
data = @lancamentos.select { |l| l.tipo == 'DESPESA' }
.map { |l| [l.descricao_lancamento, l.valor] }
table([ ['Lançamento'], *data ])
我正在尝试使用条件在 table 中打印一些数据,但是 returns 出现以下错误:数据必须是可单元格对象的二维数组
data = [["Lançamento"]]
data += @lancamentos.map do |lancamento|
if lancamento.tipo == 'DESPESA'
[
lancamento.descricao_lancamento, lancamento.valor
]
end
end
pdf.table data
应明确删除空映射单元格:
data = [["Lançamento"]]
data += (
@lancamentos.map do |lancamento|
if lancamento.tipo == 'DESPESA'
[lancamento.descricao_lancamento, lancamento.valor]
end
end.compact # ⇐ HERE
)
pdf.table data
it returns the following error:
data must be a two dimensional array of cellable objects
您收到此错误是因为您的 data
数组包含 nil
个值。
考虑这个例子:
[1, 2, 3, 4, 5].map { |i| [i] if i.odd? }
#=> [[1], nil, [3], nil, [5]]
而你想要 [[1], [3], [5]]
.
因为你已经有一个 data
变量,你可以使用 each
而不是 map
:
data = [["Lançamento"]]
@lancamentos.each do |lancamento|
if lancamento.tipo == 'DESPESA'
data << [lancamento.descricao_lancamento, lancamento.valor]
end
end
pdf.table data
或者您可以组合使用 select
和 map
:
data = @lancamentos.select { |l| l.tipo == 'DESPESA' }
.map { |l| [l.descricao_lancamento, l.valor] }
table([ ['Lançamento'], *data ])