Ruby on rails Rails:在周初查找由创建的记录
有没有办法找到在周初创建的记录?Ruby on rails Rails:在周初查找由创建的记录,ruby-on-rails,ruby,Ruby On Rails,Ruby,有没有办法找到在周初创建的记录? 比如: Message.find_by(created_at: Date.today.beginning_of_week). 但是它不起作用。因为在创建的是一个日期时间对象,它包含日期和时间值,然后 Message.find_by(created_at: Date.today.beginning_of_week) # Message Load (6.2ms) SELECT "messages".* FROM "messages" WHERE "messa
比如:
Message.find_by(created_at: Date.today.beginning_of_week).
但是它不起作用。因为在创建的
是一个日期时间
对象,它包含日期和时间值,然后
Message.find_by(created_at: Date.today.beginning_of_week)
# Message Load (6.2ms) SELECT "messages".* FROM "messages" WHERE "messages"."created_at" = $1 LIMIT $2 [["created_at", "2018-01-29"], ["LIMIT", 1]]
。。。将尝试在2018-01-29 00:00:00
找到一条记录,这是一条在午夜创建的消息记录,而不是您可能期望的2018-01-29
。你不想要那个,而是想要那个天创建的任何记录(就我理解你的问题而言)。因此,您可以尝试以下方法
date_beginning_this_week = Date.today.beginning_of_week
Message.where(created_at: date_beginning_this_week..(date_beginning_this_week + 1.day))
# Message Load (0.2ms) SELECT "messages".* FROM "messages" WHERE ("messages"."created_at" BETWEEN $1 AND $2) LIMIT $3 [["created_at", "2018-01-29"], ["created_at", "2018-01-30"], ["LIMIT", 11]]
这段代码确实有效——它完全按照您所说的去做:找到一条恰好在本周初创建的记录!!但我猜这不是你想做的,这就是你来这里的原因。。。那么,您能否更具体地说明您想要实现的目标?例如,我怀疑您实际上想要做的是:“查找本周创建的所有记录”(即,在>=Date.today.开始一周时创建的记录)。或者你想找到本周创造的第一张唱片?或者是本周第一天创建的所有记录?或者是上周创造的最后一张唱片?我不知道你到底想要什么,这就是我要求澄清的原因。