如何在Rails中将“3.days”转换为字符串“3天”?

时间:2012-12-07 03:30:57

标签: ruby-on-rails ruby

我需要将一个简单的“3.days”字符串转换为在屏幕上打印“3天”的字符串,该字符串将根据语言使用适当的区域设置来打印该字词。

我想在Rails上执行此操作可能很简单,我似乎无法找到。

2 个答案:

答案 0 :(得分:8)

在结果上调用inspect。它被覆盖以返回字符串"3 days"

Loading development environment (Rails 3.2.6)
irb(main):001:0> 3.days.inspect
=> "3 days"

在幕后,3.days只返回该时间段内的秒数:

irb(main):001:0> puts 3.days
259200

如果您要存储该整数值,则可以将该数字除以一天内的秒数,然后返回到您开始的3

num_days = 3.days / 1.day
puts "#{num_days} days" # 3 days

答案 1 :(得分:1)

如果您将输入作为字符串并且输出也需要是字符串,则一种解决方案是使用gsub替换“。”用''

1.9.3p194 :004 > '3.days'.gsub('.', ' ')
 => "3 days"