使用prawn动态创建表

时间:2014-06-20 19:31:43

标签: ruby-on-rails ruby gem prawn

我试图使用Prawn gem在Ruby on Rails中为动态大小的表编写代码。本质上,此表检查是否要显示某些信息,如果是,则相应地更改其行/单元格。此表中还有静态行/单元格(如标题),这些行/单元格将被硬编码。如果动态数据存在于每个循环中,则会检查动态数据,但我不知道在哪个foreach循环中编码。我的代码使用错误的语法:

    table_data = [[Prawn::Table::Cell::Text.new( pdf, [0,0], :content => "Title", :align            => :center, :inline_format => true, :size => 12)], 
                 object.objectProperties.each do |f|
                    [Prawn::Table::Cell::Text.new( pdf, [0,0], :content => f.getSpecificProperty, :align => :center, :inline_format => true, :size => 12)]
                    end
                ]

显然,ruby不允许在table_data中放置foreach循环,因为这只是语法上的错误(我只是在那里写它以让你理解我想要实现的目标)。我的问题是我该如何解决这个问题?我应该在哪里检查这些属性是否存在以及如何创建和附加依赖于属性存在的相应单元格?

1 个答案:

答案 0 :(得分:1)

dynamic_data = []
object.objectProperties.each do |f|
    # populate dynamic_data array
end

table_data = [[Prawn::Table::Cell::Text.new( pdf, [0,0], 
               :content => "Title", :align => :center, 
               :inline_format => true, :size => 12)], dynamic_data]