Ruby on rails 活动记录-包含的未知列
我正在执行如下活动记录查询:Ruby on rails 活动记录-包含的未知列,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我正在执行如下活动记录查询: esco = EscoContrato.left_joins( cliente: {unidade_consumidoras: :usina}, arrendamento_contratos: { arrendamento_contrato_unidades: { unidade_consumidora: { contas: :fatura_discriminacoes }}} ).where("unidade_consumidoras.distribuid
esco = EscoContrato.left_joins(
cliente: {unidade_consumidoras: :usina},
arrendamento_contratos: { arrendamento_contrato_unidades: { unidade_consumidora: { contas: :fatura_discriminacoes }}}
).where("unidade_consumidoras.distribuidora_id = 4")
这很好,但我想使用includes,因为我要使用这些嵌套表,所以不会使用n+1查询。但是,同样的查询,如果我更改
包含的的左连接
,它会给出错误“未知列unidade\u consumidoras.distribidora\u id”。我做错了什么?感谢这是因为当使用条件显式引用它们时,包括
需要引用
从
如果您想为包含的模型添加条件,您必须
明确引用它们
所以,这应该行得通
EscoContrato.includes(
cliente: {unidade_consumidoras: :usina},
arrendamento_contratos: { arrendamento_contrato_unidades: { unidade_consumidora: { contas: :fatura_discriminacoes }}}
).where("unidade_consumidoras.distribuidora_id = 4").references(:unidade_consumidoras)
或者,您可以像下面这样重新编写查询,而不需要引用
EscoContrato.includes(
cliente: {unidade_consumidoras: :usina},
arrendamento_contratos: { arrendamento_contrato_unidades: { unidade_consumidora: { contas: :fatura_discriminacoes }}}
).where(unidade_consumidoras: {distribuidora_id: 4})