我需要將簡單的「3.days」字符串轉換爲在屏幕上打印「3天」的字符串,該字符串將使用適當的語言環境,具體取決於打印單詞的語言。如何將「3.days」轉換爲Rails中的「3天」字符串?
我想這可能是一個簡單的方法來做到這一點在Rails上,我似乎無法找到。
我需要將簡單的「3.days」字符串轉換爲在屏幕上打印「3天」的字符串,該字符串將使用適當的語言環境,具體取決於打印單詞的語言。如何將「3.days」轉換爲Rails中的「3天」字符串?
我想這可能是一個簡單的方法來做到這一點在Rails上,我似乎無法找到。
致電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
也許我沒有更好地解釋自己:起源是一個字符串「3.days」而不是「3.days」。因此''「3.days」.inspect'返回'「\」3.days \「」'。不知道這聽起來是我的問題。 – Martin
如果你個人有T他作爲一個字符串輸入並且輸出也需要是一個字符串,一種解決方案是使用gsub替換'。'。 with''
1.9.3p194 :004 > '3.days'.gsub('.', ' ')
=> "3 days"
輸入來自哪裏?什麼是可能的價值範圍? –
它來自數據庫中的字符串字段。值可以是「3.days」,「5.minutes」,「1.year」等。 – Martin
用戶是否提供這些?我的觀點是,除非你對價值觀嚴格控制,否則你永遠不會想要在這些領域進行評估。我會用gsub選項 –