2

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

我想在 Rails 上可能有一种我似乎找不到的简单方法。

4

2 回答 2

11

调用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
于 2012-12-07T03:39:21.310 回答
1

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

1.9.3p194 :004 > '3.days'.gsub('.', ' ')
 => "3 days" 
于 2012-12-07T11:46:39.583 回答