为Ruby在Rails上的最后更改值创建范围



我正在研究基于API的应用程序。每天晚上,根据API主数据库更新我的数据库。

有一个LastChangeTimestamp列我正在为price_change_time创建一个范围,例如下面

scope :price_change_time, -> {where("LastChangeTimestamp BETWEEN ? AND ?", (Time.zone.now - 1.day).beginning_of_day, (Time.zone.now - 1.day).end_of_day)}

这在下面没有工作和错误。

ActivereCord :: StatementInvalid:PG :: UndefinedColumn:错误:列" LastChangeTimestamp"不存在

我做错了什么?

尝试在列上添加以下单个引号,例如 'LastChangeTimestamp',然后查询看起来像

scope :price_change_time, -> {where("'LastChangeTimestamp' BETWEEN ? AND ?", (Time.zone.now - 1.day).beginning_of_day, (Time.zone.now - 1.day).end_of_day)}

默认情况下搜索lastchangetimestamp在表上,但您的列名是LastChangeTimestamp,这就是为什么他不认识LastChangeTimestamp

,或者您可以根据此命名lastchangetimestamplast_change_timestamp的列和查询范围更新。

希望它有帮助

您可以使用Rails查询 range operator '..'

scope :price_change_time, -> {where(LastChangeTimestamp: (Time.zone.now - 1.day).beginning_of_day..(Time.zone.now - 1.day).end_of_day)}

最新更新