联接查询中created_at的错误不明确



我有一个活动的记录查询,它导致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中没有任何用处。

相关内容

  • 没有找到相关文章

最新更新