我有两个型号,CourierOrder.

我有以下疑问:

active_couriers = Courier.
  available_courier_status.
  where(:service_region_id => @service_region.id).
  includes(:orders)

这个查询是有效的,但是,它会提取所有订单.我想把订单限制为当天的订单.所以我添加了下面的查询where("orders.created_at >= ?", Time.zone.now.beginning_of_day).

active_couriers = Courier.
  available_courier_status.
  where(:service_region_id => @service_region.id).
  includes(:current_orders).
  includes(:orders).
  where("orders.created_at >= ?", Time.zone.now.beginning_of_day)

这给了我一个错误:

PG::UndefinedTable: ERROR:  missing FROM-clause entry for table "orders"

我在这里做什么?

推荐答案

嗯,看起来你想要包括current_ordersorder.这些是同一张桌子,条件不同吗?这可能会混淆活动记录.此外,我非常确定在引用联接表时包含references方法是明智的.或许,可以try 以下方式:

active_couriers = Courier.includes(:orders)
  .available_courier_status
  .where(:service_region_id => @service_region.id)
  .where("orders.created_at >= ?", Time.zone.now.beginning_of_day)
  .references(:orders)

Ruby-on-rails相关问答推荐

仅当未在带有ENV[';Dyno';]的Heroku问题上运行时才初始化Sidekiq Cron

通过激励控制器正确更新Turbo帧信源

如何从 Rails7.2 中的控制器获取名称空间?

`ActionController::API` 祖先类在加载后不会更新

Rails 7 共享刺激控制器功能

Rails ActiveRecord 中的更新插入

使用 rails 3.1.0 和 ubuntu 安装 Nokogiri 1.5.0 时出错

twitter bootstrap下拉突然不起作用

Ruby on Rails 取消首字母大写

如何获取 Ruby on Rails 生成的表单元素 id 以供 JavaScript 参考?

fields_for 表单构建器对象为零

简单表单关联自定义标签名称

搭建脚手架时建立关系

使用god 监控独角兽 - 以非零代码开始退出 = 1

测试:如何在不损失速度的情况下专注于行为而不是执行?

rails 获取应用程序根/基本 url

Heroku - 在浏览器中显示当前提交的哈希

ruby on rails 如何处理 NaN

Ruby 中的类别名

Rails.cache 在测试之间被清除了吗?