Ruby on rails Rails视图段是否依赖于当时的udpated_/created_?

Ruby on rails Rails视图段是否依赖于当时的udpated_/created_?,ruby-on-rails,time,Ruby On Rails,Time,我可以这样做,以便为新闻故事添加标签: <% if article.urgency == 'majorbreaking' && article.updated_at.today? %> <span class="breaking"> … … “today”是开箱即用的,但我如何使用(比如“last six hours”(在视图中,我知道如何使用作用域和控制器来选择文章,但这是在选择之后,只是为了视图) 谢谢。如果您想用最后6小时的时间来替换今天的

我可以这样做,以便为新闻故事添加标签:

<% if article.urgency == 'majorbreaking' && article.updated_at.today? %>
  <span class="breaking">
…
“today”是开箱即用的,但我如何使用(比如“last six hours”(在视图中,我知道如何使用作用域和控制器来选择文章,但这是在选择之后,只是为了视图)


谢谢。

如果您想用最后6小时的时间来替换今天的
,请使用:

<% if article.urgency == 'majorbreaking' && article.updated_at > (DateTime.now - 6.hours) %>
  <span class="breaking">
…
(DateTime.now-6.hours)%%>
…
查看时间助手


如果您想用最后6小时的时间来替换今天的
,请使用:

<% if article.urgency == 'majorbreaking' && article.updated_at > (DateTime.now - 6.hours) %>
  <span class="breaking">
…
(DateTime.now-6.hours)%%>
…
查看时间助手


因为这是在选择之后进行的,所以我们可以这样简单地使用:

article.updated_at >= 6.hours.ago

简单&漂亮

因为这是经过选择的,所以我们可以简单地如下使用:

article.updated_at >= 6.hours.ago

Simple&pretty

通过在文章模型中创建一个方法,您可以最小化视图正在处理的硬编码逻辑,并可能使代码干涸(如果您实际上想要处理多个时间跨度)。例如:

class Article < ActiveRecord::Base 
  def recent?(hours_ago=24)
    created_at >= hours_ago.hours.ago
  end
end
类文章=hours\u ago.hours.ago
结束
结束
那么在你看来,

在最后一天内:

<% if article.urgency == 'majorbreaking' && article.recent? %>
  <span class="breaking">

在过去6小时内:

<% if article.urgency == 'majorbreaking' && article.recent?(6) %>
  <span class="breaking">

通过在文章模型中创建一个方法,您可以最小化视图正在处理的硬编码逻辑,并可能会使代码干涸(如果您实际上想要处理多个时间跨度)。例如:

class Article < ActiveRecord::Base 
  def recent?(hours_ago=24)
    created_at >= hours_ago.hours.ago
  end
end
类文章=hours\u ago.hours.ago
结束
结束
那么在你看来,

在最后一天内:

<% if article.urgency == 'majorbreaking' && article.recent? %>
  <span class="breaking">

在过去6小时内:

<% if article.urgency == 'majorbreaking' && article.recent?(6) %>
  <span class="breaking">


谢谢你,Hieu,这很有效。这正是我遇到的麻烦。谢谢你,Hieu,这很有效。这就是我遇到的问题。我会再看一遍的。我以前试过,但没有成功。谢谢。我会再看一遍的。我以前试过,但没有成功。谢谢。我想一定是几小时前。几小时前。是的!谢谢正在修复。我想应该是几小时前。几小时前。是的!谢谢现在修好。