Rails distance_of_time_in_words_to_now选项

时间:2013-05-16 15:06:31

标签: ruby-on-rails datetime helpermethods

我猜我需要创建一个辅助方法才能实现这一目标,但实际上我想使用distance_of_time_in_words_to_now来显示datetime字段'之间的时间。 s数据,现在,但更具体的话。例如,如果是3天就应该在3天内说出#34;"。如果是明天,它应该说"明天" (没有"在")。

我现在拥有的只是:

<%= distance_of_time_in_words_to_now(interaction.action_date) %>

这里的方向是否正确?谢谢!

2 个答案:

答案 0 :(得分:0)

如果您查看此方法的来源(http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-distance_of_time_in_words),您会看到它使用本地化。几天的关键是:x_days,所以在你的en.yml文件中,你可以使用:count覆盖它,如下所示:

en:
  x_days: "in %{count} days"

现在为“明天”,我会创建一个帮助程序,它可以返回您的自定义响应或回退到distance_of_time_in_words,如下所示:

def custom_distance_of_time_in_words_to_now(time)
  return "tomorrow" if time.tomorrow? #however you decide to check
  distance_of_time_in_words_to_now(time)
end

答案 1 :(得分:0)

您可能需要添加“天”字样,但您可以从以下内容中获取

Time.now.strftime("%d") #for today's date that will give you 16

在&gt;&gt;中检查以下内容irb它给你想要的东西

Time.now.strftime("%d")+ " days" # output => "16 days"