2014-02-13 29 views
1

我已经用出色的number_to_human_sizeActionView::Helper一直当我想知道如何改变输出单元的符号,如果有任何的方式来改变输出单元符号:使用number_to_human_size ::的ActionView助手

默认行为是输出字节,KB,MB等单位,而我想看到位,Kb,Mb等

数字转换是正确的,我只想改变单位名称。我已经想通了,使用的语言环境可能是一个解决方案,在我en.yml增加了这一点:

en: 
    storage_units: 
    format: "%n %u" 
    units: 
     byte: 
     one: "b/s" 
     other: "b/s" 
     kb: "Kb/s" 
     mb: "Mb/s" 
     gb: "Gb/s" 
     tb: "Tb/s" 

...但似乎并没有工作。

有没有人处理过这个挑战?

由于提前,

佩特罗斯

回答

1

使用Rails' number_to_human_size你可以做一个gsub的后缀来代替值。

number_to_human_size(1234567890).gsub(/(Bytes?|B$)/,'b/s') 
# => "1.15 Gb/s" 
+0

的确的,但我对处理文件大小(1024而不是1000)的''''human_to_number_size''感兴趣。显然上述内容并不适用于这个特定的帮手: 'irb(main):003:0> number_to_human(123456789000,单位:{单位:“b/s”,千:“Kb/s”,百万:“Mb/s“,”十亿“:”Gb/s“,兆亿:”Tb/s“}) =>”123 Gb/s“ ”irb(main):004:0> number_to_human_size(123456789000,units:{unit :“b/s”,千:“Kb/s”,百万:“Mb/s”,十亿:“Gb/s”,兆亿:“Tb/s”})' =>“115 GB” – Cacofonix

+0

,我看着number_to_human_size,但它不允许你指定自定义后缀。现在我想到了,做一个gsub怎么样? – jstim

+0

表现非常好!即使有些情况下,功能如下:?和?,这些包裹着'''Bytes'''? – Cacofonix

相关问题