1

我需要说出一个人的年龄。是否有 Rails 助手:

例如:

  • 如果此人不到 1 个月:X 天
  • 如果此人不到一岁:X 个月大
  • 如果它介于 1 和 5 之间:X 年,Y 个月大

有任何想法吗?

4

1 回答 1

2

您可以在 ActionView::Helpers::DateHelper 模块中自定义帮助程序。

https://github.com/rails/rails/blob/4b1985578a2b27b170358e82e72e00d23fdaf087/actionpack/lib/action_view/helpers/date_helper.rb#L67

除此之外,您可以很容易地创建自己的助手,而无需考虑闰日……这可能很重要,也可能不重要。

def humanize_age(person)
  age = Date.today - person.birth_date
  years = (age / 1.year).to_i
  age = age % 1.year
  months = (age / 1.month).to_i
  age = age % 1.month
  days = (age / 1.day).to_i

  if years < 1
    if months < 1
      "#{days} days old"
    else
      "#{months} months old"
    end
  else
    "#{years} years, #{months} months old"
  end
end

这可以清理一下,我还没有测试过,但这应该可以。

于 2012-12-08T23:03:22.030 回答