我有一个活动的记录查询,它导致created_at
出现不明确的错误。查询是:
Payment.joins(:invoice).successful.where('created_at < ?', 1.hour.ago)
旨在返回任何成功的付款,这些付款的发票创建时间超过一小时。然而,由于.joins(:invoice)
,它对"created_at"范围感到困惑,因为发票和付款都有一个created_at列。
我尝试过的另一种选择是:Payment.joins(:invoice).successful.where(created_at: *code for older than an hour ago that im unsure on*)
或Payment.joins(:invoice).successful.where('self.created_at < ?', 1.hour.ago)
,但我似乎无法获得正确的语法。
有什么办法解决这个问题吗?非常感谢。
您可以在列前面加上表名,在本例中为payments
;
Payment
.joins(:invoice)
.successful
.where('payments.created_at < ?', 1.hour.ago)
请注意,您尝试使用CCD_ 7将不起作用,因为无论您将什么作为字符串传递给CCD_;解释的";作为原始SQL——他们称之为"原始SQL";SQL片段";。self
是一个Ruby关键字,在RDBMS中没有任何用处。