迄今为止的动态天数

Dynamic number of days to date

我正在尝试查询我需要所有属性的查询,这些属性的付款将在 X 天后到期。 X 是由 属性 的社区定义的,我现在有以下内容:

Property.joins(:community).joins(:payments).where("payments.expiration_date = current_date + interval communities.sms_defaulting_days + ' days'")

这是行不通的,因为它无法识别社区(我相信这是一个解析问题),我得到的错误是:

PG::SyntaxError: ERROR:  syntax error at or near "communities"

这对我来说很有意义。

我想要实现的是查询的最后部分应该如下所示:

payments.expiration_date = current_date + interval '2 days'

我会从 "community.sms_defaulting_days"

中得到 2

另一种思考方式是"expiration_date = 2.days.from_now",但我仍然遇到同样的问题,因为我不知道如何让它动态工作。

尝试将代码写成:

Property.joins(:community)
        .joins(:payments)
        .where("payments.expiration_date = current_date + (communities.sms_defaulting_days || ' days')::interval")