【问题标题】:Getting time intervals in ruby在红宝石中获取时间间隔
【发布时间】:2013-12-16 11:02:40
【问题描述】:

我有一个外部服务允许我将用户登录到我的网站。

为避免因过度使用而被踢出,我在以下表单中使用了MySQL 表来缓存用户访问:

username (STRING) | last access (TIMESTAMP) | has access? (TINYINT(1) - BOOLEAN)

如果用户在给定时间可以访问,我相信他可以访问并且在一天内不查询服务,那就是

query_again = !user["last access"].between?(Time.now, 1.day.ago)

由于某种原因,这总是返回 true,对这个逻辑有帮助吗?

【问题讨论】:

    标签: mysql ruby-on-rails ruby web-services rails-activerecord


    【解决方案1】:

    在范围内(您在此处有效使用),通常期望较低的数字是开始,较高的数字是结束。因此,如果您只是在 between? 调用中切换条件,它应该对您有用

    query_again = !user["last access"].between?(1.day.ago, Time.now)
    

    您可以在 IRB 中自己轻松测试:

    1.hour.ago.between?(Time.now, 1.day.ago)
    # => false
    
    1.hour.ago.between?(1.day.ago, Time.now)
    # => true
    

    【讨论】:

      猜你喜欢
      • 2019-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-04
      • 1970-01-01
      相关资源
      最近更新 更多