gpt4 book ai didi

ruby-on-rails - 在 .where 查询中调用 Rails 对象的方法

转载 作者:行者123 更新时间:2023-11-29 13:57:19 24 4
gpt4 key购买 nike

我有一个对象订单,每个订单都有_many line_items(这些是电视广告)。 LineItem 将日期作为属性,它是 line_item 运行的日期。为了计算订单开始和结束日期,我使用了 line_items 上的日期。因此,我采用最早日期的 line_item 和最近或最远的 future 订单项,这些成为订单的开始和结束日期。您可以在下面看到计算开始和结束日期的方法。

def start_date
line_items.first.date rescue nil
end

def end_date
line_items.last.date rescue nil
end

现在我需要能够获得当月的所有订单。我正在尝试使用调用查询中的 start_date 和 end_date 方法的 .where 查询。请参阅下面的查询。

Order.where(start_date <= ? AND end_date >= ?', Date.today.beginning_of_month, Date.today.end_of_month)

我遇到了错误

PG::UndefinedColumn: ERROR:  column "start_date" does not exist

是否可以在 .where 查询中调用方法?

最佳答案

不,不能在 WHERE 查询中调用方法。

如果没有您的数据库架构,我无法编写工作代码,但我认为您应该使用 JOIN 将 line_items 记录包含到结果集中,然后才将条件应用于 line_items 字段。

关于ruby-on-rails - 在 .where 查询中调用 Rails 对象的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29352720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com