检查今天是否创建了模型实例?

时间:2016-04-17 02:46:03

标签: ruby-on-rails ruby

有没有办法检查今天是否已创建模型实例?

我想要它,因此每天只应创建一个模型实例,因此如果创建了一个新实例,则删除当天已创建的任何实例。

2 个答案:

答案 0 :(得分:1)

直接查询数据库以仅检索今天的记录:

dt1 <- dt[Score1>10, .(V1= mean(Score1)), by = ID
          ][data.table(ID= unique(dt$ID)), on = "ID"][is.na(V1), V1 :=0][]
dt1
#   ID   V1
#1:  1 12.5
#2:  2  0.0
#3:  3  0.0

dt1[, mean(V1)]
#[1] 4.166667

你也可以在Ruby端处理它(如果你真的想要,但不推荐):

Model.where(created_at: Time.now.beginning_of_day..Time.now.end_of_day)

答案 1 :(得分:1)

您需要首先检查是否有任何今天创建的实例,如果有,请将它们全部销毁。之后,您可以创建新实例。

def destroy_todays
  Model.where(created_at: Time.zone.now.beginning_of_day..Time.zone.now.end_of_day).destroy_all
end

def create_todays(attrs)
  destroy_todays
  Model.create(attrs)
end

因此,只要您想创建今天的实例,就可以保证您首先销毁今天创建的任何其他实例。