最简洁的方法来证明纯文本列式布局的合理性?

时间:2011-07-08 14:15:43

标签: ruby-on-rails formatting erb

在纯文本.erb模板中,您建议我使用哪种方法来生成最易维护/可读的代码:

ITEM DESCRIPTION                                           QTY       PRICE

Product Name One                                             1      $10.00
Another Product With a Longer Name                           2       $5.00
Yet Another Item                                             1      $30.00

根据已购买的商品,每个行(显然)都是可变的。

我可以用辅助方法计算所需的空格,但是这已经是一个解决了问题的更优雅的解决方案吗?

3 个答案:

答案 0 :(得分:1)

看起来人们实际上可以将格式属性传递给ERB模板来执行此操作。我最近在拉姆请求中使用了这个技巧。

我的例子如下:

拳击erb模板如下所示:

 ID                Name
 ==                ====
<% this.each do |flavor| %>
  <%= '%-17s %-7s' % [flavor.id, flavor.name] %> 
<% end %>

这会输出如下所示的数据:

ID                Name
==                ====
2                 512MB Standard Instance
3                 1GB Standard Instance
4                 2GB Standard Instance
5                 4GB Standard Instance
6                 8GB Standard Instance
7                 15GB Standard Instance
8                 30GB Standard Instance
performance1-1    1 GB Performance
performance1-2    2 GB Performance
performance1-4    4 GB Performance
performance1-8    8 GB Performance
performance2-120  120 GB Performance
performance2-15   15 GB Performance
performance2-30   30 GB Performance
performance2-60   60 GB Performance
performance2-90   90 GB Performance

答案 1 :(得分:0)

听起来你需要一个纯文本表生成器。我能想到的唯一一个红宝石就是:https://github.com/visionmedia/terminal-table但是如果这个不符合您的需要,可能会有其他人。

答案 2 :(得分:0)

我最后只使用printf()填充格式选项。对于这种情况,终端表看起来有点过于复杂,但对于更复杂的要求很有用,例如显示列表结果集。