为什么将created_at与当前日期进行比较会导致错误?

时间:2013-04-24 23:41:45

标签: ruby-on-rails

我正在尝试使用“if语句”来比较上次发布的评论的created_at与今天。

然而,这会返回错误:

应用程序助手

def chat_button(community)
  if community.comments.last.created_at == Date.current.to_date
    'Posted today'
  else
    'No post today'
  end
end

2 个答案:

答案 0 :(得分:2)

您正在将DateTimecreated_at)与Date进行比较。小时/分钟/秒将导致比较失败。试试这个:

if community.comments.last.created_at.to_date == Date.current

答案 1 :(得分:1)

还有一种较短的方法可以查看给定的日期时间是否为今天。

1.minute.ago.today? #=> true
1.day.ago.today? #=> false

在你的情况下,这将是:

comment = community.comments.last
if comment && comment.created_at.today?

请注意,此方法由Rails的Active Support提供,它在Ruby标准库中不存在。