我正在开发一款基于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:ERROR:列“lastchangetimestamp”不存在
我做错了什么?
答案 0 :(得分:1)
尝试在'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)}
Rails默认情况下会在桌面上搜索lastchangetimestamp
,但您的列名为LastChangeTimestamp
,这就是为什么他没有认出LastChangeTimestamp
列
或者您可以将列重命名为lastchangetimestamp
或last_change_timestamp
,并根据此查询范围更新。
希望有所帮助
答案 1 :(得分:0)
您可以使用rails query range operator '..'
scope :price_change_time, -> {where(LastChangeTimestamp: (Time.zone.now - 1.day).beginning_of_day..(Time.zone.now - 1.day).end_of_day)}