Sql 在RubyOnRails中使用ActiveRecord查询方法编写具有多个关联的查询时出错

Sql 在RubyOnRails中使用ActiveRecord查询方法编写具有多个关联的查询时出错,sql,ruby-on-rails,postgresql,rails-activerecord,Sql,Ruby On Rails,Postgresql,Rails Activerecord,使用RubyOnRails ActiveRecord查询方法编写查询时遇到问题。我有以下型号的汽车: 订单多对多订单产品多对多产品一对多产品位置 我想要的是获取所有订单,其中产品位置的名称为'something'(名称是ProductLocation表中的一列) 如何存档此文件?现在我有这个 Order.joins(Order_products:[{product::product_location}])。选择('orders.*,product_locations.name as locati

使用RubyOnRails ActiveRecord查询方法编写查询时遇到问题。我有以下型号的汽车:

订单多对多订单产品多对多产品一对多产品位置

我想要的是获取所有订单,其中产品位置的名称为'something'(名称是ProductLocation表中的一列)

如何存档此文件?现在我有这个

Order.joins(Order_products:[{product::product_location}])。选择('orders.*,product_locations.name as location')。其中(product_locations:{name:'NY'})
但它抛出了一个错误

从“订单产品”上的“订单”内部连接“订单产品”中选择计数(订单。*,产品位置。名称作为位置)。“订单id”=“订单”,“产品”上的“id”内部连接“产品”。“产品位置”上的“产品id”内部连接“产品位置”。“产品id”=“产品位置”中的“产品位置”。“名称”=“纽约”
ActiveRecord::StatementInvalid:PG::SyntaxerError:ERROR:位于或接近“as”的语法错误
第1行:为…选择计数(订单。*,产品位置。名称作为位置)。。。

我做错了什么?提前谢谢。

计数(订单。*,产品位置。名称作为位置)
是错误的。你想做什么?将其更改为:
…计数(订单。*)作为订单计数,产品位置。名称作为位置从…
错误来自
。选择('orders.*,product_locations.name as location')
我不明白您为什么需要它。您可以在输出中看到计数(orders.*,product_locations.name as location)在PSQL中永远不起作用。如果不使用它,请尝试,看看是否出现错误。