首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将相邻的前一个记录查询到使用活动记录在Rails中查找的另一个记录?

如何将相邻的前一个记录查询到使用活动记录在Rails中查找的另一个记录?
EN

Stack Overflow用户
提问于 2020-04-02 14:49:39
回答 1查看 155关注 0票数 0

我正在开发一个Rails应用程序,从约翰·霍普金斯新冠肺炎Github项目中提取数据,并计算病例和死亡的日增长率。我之所以开始这样做,是因为我想看到我所在的纳什维尔市的数据每天都在变化。目前,我有一个硬编码的html表,它的你可以在这里看到,但我试图使它的动态,以便它工作的每个县在美国。

此时,我无法对数据库建模,并计算before_save回调的日增长率,因为我不知道如何查找所需的记录。

,在rails中查找记录是一种很好的方法,这是与您正在查找的记录相邻的前一个记录?我甚至不知道如何用英语清楚地说出这一点,这可能是我无法将其转化为代码的问题的根源。例如,今天与昨天或3月28日与3月27日或3月31日与3月30日等。我需要根据日期找到第一份记录,然后找到前一天的最后记录。

它应该类似于这个before_save回调:

代码语言:javascript
复制
def calculate_case_growth_rate
  current_cases  = self.cases
  previous_cases = Update.where(date: 1.day.ago).sum(:cases)
  self.case_growth_rate = (current_cases - previous_cases) / current_cases
end

这是发生回调的模型

但是,这种方法不能工作,因为在某些时候,数据可能对以前的日期是不正确的,并且需要进行更新。例如,田纳西州卫生部门可能会发现他们有3月31日的错误数据,所以约翰霍普金斯大学的数据会被更新,因此我的数据库中的记录需要更新。因此,在上面的代码中,第一次发生这种情况时,它会调用Update.last,并将一个不正确的增长率保存到3月31日。因此,无论是计算今天对昨天的增长率还是3月28日对3月27日的增长率,我都需要回调。

这是一个开放的项目,所以整个应用程序是这里。(如果你想直接帮忙,请发出拉请求!)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-02 15:21:23

据我所知,你需要前一天的案子。假设今天是4月2日,那么你需要4月1日的情况,然后计算增长率。要得到前一天的案例,你能做的就是做这样的事情。Update.where(date: 1.day.ago),这将返回前一天的情况。我已经从您的模式中查找了date属性。希望它能帮上忙

更新:因此,要求从以前的日期中获取相对于当前日期的案例,然后计算由

代码语言:javascript
复制
    before_save :calculate_case_growth_rate

    def calculate_case_growth_rate
      current_cases  = self.cases
      previous_cases = Update.where(date: (self.date - 1.day)).sum(:cases)
      self.case_growth_rate = ((current_cases - previous_cases) / current_cases)
    end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60994412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档