在纯文本.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
根据已购买的商品,每个行(显然)都是可变的。
我可以用辅助方法计算所需的空格,但是这已经是一个解决了问题的更优雅的解决方案吗?
答案 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()
填充格式选项。对于这种情况,终端表看起来有点过于复杂,但对于更复杂的要求很有用,例如显示列表结果集。