Mysql 在ruby中获取时间间隔

Mysql 在ruby中获取时间间隔,mysql,ruby-on-rails,ruby,web-services,rails-activerecord,Mysql,Ruby On Rails,Ruby,Web Services,Rails Activerecord,我有一个外部服务,允许我将用户登录到我的网站 为了避免因过度使用而被踢出,我在以下表单上使用了一个MySQL表来缓存用户访问: username (STRING) | last access (TIMESTAMP) | has access? (TINYINT(1) - BOOLEAN) 如果用户在给定时间有访问权限,我相信他有访问权限,并且在一天内不查询服务,也就是说 query_again = !user["last access"].between?(Time.now, 1.day.ag

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

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

username (STRING) | last access (TIMESTAMP) | has access? (TINYINT(1) - BOOLEAN)
如果用户在给定时间有访问权限,我相信他有访问权限,并且在一天内不查询服务,也就是说

query_again = !user["last access"].between?(Time.now, 1.day.ago)
由于某种原因,该逻辑总是返回true,对该逻辑有任何帮助吗?

在范围内(您在这里有效地使用),通常预期较低的数字是开始,较高的数字是结束。因此,如果您只需在
调用之间切换
中的条件,它应该对您有效

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