作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试将较大的 % 数字替换为较短的版本 (10000% -> 10k%)。通常代码可以工作,但如果 number_to_percentage
使用它就会停止工作(使用 TOTALY SAME 字符串)。
Loading development environment (Rails 5.1.2)
2.3.1 :001 > "10000.000%".bytes
=> [49, 48, 48, 48, 48, 46, 48, 48, 48, 37]
2.3.1 :002 > helper.number_to_percentage(10000).bytes
=> [49, 48, 48, 48, 48, 46, 48, 48, 48, 37] # totally same
2.3.1 :003 > helper.number_to_percentage(10000).sub(/(\d\d)\d\d\d(?:[.,]\d+)?\%$/){ "#{$1}k%" }
=> "k%" # doesn't work
2.3.1 :004 > "10000.000%".sub(/(\d\d)\d\d\d(?:[.,]\d+)?\%$/){ "#{$1}k%" }
=> "10k%" # works
什么会导致这种情况?有什么想法吗?
最佳答案
因为 number_to_percentage 返回一个 ActiveSupport::SafeBuffer 而不是一个字符串。
helper.number_to_percentage(10000).class # => ActiveSupport::SafeBuffer
ActiveSupport::SafeBuffer(它是 String 的子类)对 sub 等不安全方法做了一些魔术处理。这就是为什么您会有一些惊喜。
关于ruby-on-rails - Rails number_to_percentage 和子奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48187312/
我正在尝试将较大的 % 数字替换为较短的版本 (10000% -> 10k%)。通常代码可以工作,但如果 number_to_percentage 使用它就会停止工作(使用 TOTALY SAME 字
我想使用 Rails 的 number_to_percentage 方法以百分比形式显示 0 到 100 范围内的十进制数字,包括数字的所有小数位,并且没有不必要的尾随零。 一些示例输入及其相应的期望
我是一名优秀的程序员,十分优秀!