右对齐RoR中文本输出中的数字

时间:2015-09-14 00:28:38

标签: ruby-on-rails ruby pdf

我刚开始使用RoR并修改现有程序。使用Ruby 2.2.2p95,Rails 4.1.13.rc1和Prawn 2.0.1 文字在一个有界的框中。

pdf.column_box([0,pdf.cursor], :columns => 2, :width ==> pdf.bounds.width

person_text << "\n#{sprintf "%20d", count} #{'Grandchild'.pluralize(count)}"

如果count = 234,则输出为:

234 Grandchildren

如果count = 4238,则输出为:

4238 Grandchildren

没有空白填充来右对齐20空格字段中的数字。输出应如下所示:

            234 Grandchildren
           4238 Grandchildren

有什么问题? 如何编码?

2 个答案:

答案 0 :(得分:0)

String类有两个名为ljustrjust的方法可以帮助你

2.2.2 :010 > str=123
 => 123 
2.2.2 :011 > "#{str.to_s.ljust(5)} Grandchildren"
 => "123   Grandchildren" 
2.2.2 :012 > str=1234
 => 1234 
2.2.2 :013 > "#{str.to_s.ljust(5)} Grandchildren"
 => "1234  Grandchildren" 
2.2.2 :014 > "#{"123".to_s.ljust(5)} Grandchildren"
 => "123   Grandchildren" 
2.2.2 :015 > 

如果你正在做一个网页,你也可以通过CSS进行。

答案 1 :(得分:0)

由于Prawn的白色剥离,在第一个chr中放了一个。正。

 >   count = 4235
 >   srt = "#{sprintf("%20d", count)}"
 >   string = srt.gsub(/ (?= )/, Prawn::Text::NBSP)
 >   person_text << "\n#{string}  #{'Child'.pluralize(count)}"

   =>                 4235 Children