当前位置:  开发笔记 > 编程语言 > 正文

与Rails的时间比较问题

如何解决《与Rails的时间比较问题》经验,为你挑选了1个好方法。

我手边有一项非常简单的任务.如果上次更新记录的时间超过15分钟,则显示一个按钮.否则,请勿显示按钮.

该字段是日期时间.

我的观点代码:

<% if @object.display_button? -%>
  my button
<% end -%>

我对该对象的显示按钮方法:

def display_button?
  return false if last_updated.nil?
  if Time.now - last_updated > 15.minutes
    true
  else
    false
  end
end

我也测试过这个单元,但是在实现时,它似乎没有用.

我的逻辑是正确的还是有更好的方法来完成这个?



1> Alex Wayne..:
if last_updated < 15.minutes.ago

minutes方法返回一个我认为的整数,并减去时间对象产生另一个时间对象.所以你的表达式将int与时间进行比较并做一些你不期望的事情.

15.minutes.ago 产生一个时间对象,可以直接与另一个时间对象进行比较.


此外,永远不会做if (something) return true; else; return false红宝石.您的方法将返回在其中执行的最后一个表达式的值,因此您可以大大简化整个方法:

def display_button?
  last_updated && last_updated < 15.minutes.ago
end

这不是更容易阅读?

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有