我猜我需要创建一个辅助方法来实现这一点,但基本上我想distance_of_time_in_words_to_now
用来显示datetime
字段数据和现在之间的时间,但用更具体的词。例如,如果是 3 天,则应该说“3 天内”。如果是明天,它应该说“明天”(没有“在”这个词)。
我目前拥有的是:
<%= distance_of_time_in_words_to_now(interaction.action_date) %>
这里有正确方向的任何点吗?谢谢!
我猜我需要创建一个辅助方法来实现这一点,但基本上我想distance_of_time_in_words_to_now
用来显示datetime
字段数据和现在之间的时间,但用更具体的词。例如,如果是 3 天,则应该说“3 天内”。如果是明天,它应该说“明天”(没有“在”这个词)。
我目前拥有的是:
<%= distance_of_time_in_words_to_now(interaction.action_date) %>
这里有正确方向的任何点吗?谢谢!
如果您查看此方法的来源(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
您可能必须添加“天”一词,但您可以从以下内容中获得休息
Time.now.strftime("%d") #for today's date that will give you 16
在>> irb中查看以下内容,它可以提供您想要的
Time.now.strftime("%d")+ " days" # output => "16 days"