考虑一个名为 ActiveRecord
的 Movie
模型,它的持续时间属性表示以分钟为单位的电影长度。在我看来,打印出此属性的最佳方法是什么?
我希望能够写出这样的东西:
= l(@movie.duration, unit: :minutes) # Should return "105 minutes"
但如果我能写出来就更棒了:
= l(@movie.duration)
甚至
= @movie.duration
但是,这需要某种方式来声明在持续时间属性中使用什么单位,该属性只是数据库中的一个整数。
Rails I18n 似乎有一种翻译属性的方法,但只有它们的名称,而不是它们的值。
与 I18n 配合良好的解决方案是可取的。
最佳答案
我看不出有什么理由把事情复杂化。你甚至没有在不同单位之间转换:
在您看来:
<%= t :'models.movie.duration', :count => @movie.duration %>
在您的
config/locales/en.yml
中en:
models:
movie:
duration:
one: '%{count} minute'
other: '%{count} minutes'
关于ruby-on-rails - 本地化时间单位,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16576499/