我认为:Due <%= time_ago_in_words(todo.due) %>
但与大多数time ago的用例不同,我需要支持time ago和time ahead。由于到期日可以是过期(前一天)和即将到期(前一天),我如何有条件地显示它,以便如果它是过期的,上面的代码将输出“x天前到期”,如果它是在未来的输出“x天后到期”?
最佳答案
从您正在使用的erb模板引擎的外观来看,您可以在视图逻辑中通过obmit=sign来执行if条件,这样您就可以执行如下操作
<% if time_ago < Time.now %>
<%= time_ago_in_words(todo.due) %>
<% else %>
<%= time_ahead_in_words(todo.due) %>
<% end %>
应该让你知道该怎么做尽管我相信一个更好的做法可能是将它移到rails应用程序的models部分我常用的公理是脂肪模型瘦控制器,但这是更多的建议,然后一个规则。
编辑
Alex是否在下面的评论中提到过,这应该放在helper方法中,而不是应用程序的model部分