gpt4 book ai didi

ruby-on-rails - Rails Where Created_at 等于特定数字

转载 作者:行者123 更新时间:2023-12-05 01:48:09 26 4
gpt4 key购买 nike

我正在尝试弄清楚如何执行查询,其中 created_at.year == 给定年份,而 created_at.month 等于给定月份。

但是我不知道我做错了什么。

Model.where("'created_at.month' = ? AND 'created_at.year' = ?", 7,2013)

结果什么都不显示。

然而,当我尝试 Model.first.created_at.month ==7Model.first.created_at.year ==2013 我对两者都认同。

因此理论上我的查询应该至少返回我的第一条记录。

任何人都知道我做错了什么或找到在特定月份创建的记录的任何替代方法?

请注意,在我看来,月/年将是参数,但出于本示例的目的,我使用了实际值。

使用 ruby 1.9.3 rails 3.2.13

最佳答案

created_at 是一个时间戳;它不是数据库中的一组离散字段。 created_at.year 等不存在于您的数据库中;它只是一个时间戳字段。当您调用 @model.created_at.year 时,Rails 会从数据库中加载 created_at 字段,并从中创建一个时间对象,它有一个 #year 您可以调用的方法。

你想要的是查询一个日期范围:

Model.where("created_at >= ? and created_at < ?", Time.mktime(2013, 7), Time.mktime(2013, 8))

这将在 2013 年 7 月找到具有 created_at 时间戳的任何模型。

关于ruby-on-rails - Rails Where Created_at 等于特定数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17439051/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com