【问题标题】:Dynamically creating a table using prawn使用大虾动态创建表
【发布时间】:2014-06-20 19:31:42
【问题描述】:

我正在尝试使用 Prawn gem 在 Ruby on Rails 中为动态大小的表格编写代码。本质上,此表检查是否要显示某些信息,如果是,将相应地更改其行/单元格。此表中还有静态行/单元格,例如标题,它们将被硬编码。如果动态数据存在,将通过 for each 循环进行检查,但我不知道在哪里编写 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 不允许将 foreach 循环放置在 table_data 中,因为这在语法上是错误的(我只是在那里写了它,以便让您了解我想要实现的目标)。我的问题是我该如何解决这个问题?我应该在哪里检查这些属性是否存在以及如何创建和附加依赖于属性存在的相应单元格?

【问题讨论】:

    标签: ruby-on-rails ruby gem prawn


    【解决方案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]
    

    【讨论】:

    • 就像一个魅力。我非常接近这一点,但我试图在each do 循环中构建 table_data。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 2011-12-14
    • 2012-01-08
    • 2012-12-22
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多