2017-12-26 21 views
0

このクエリは動作しません。私は2番目と3番目の深い関連を取り入れようとしています。第2レベルと第3レベルの関連付けを含む問題

Pedido>にhas_one(products_pedido)>にhas_one(product_size)

@pedidos = Pedido.includes(:pedidos_payments, :products_pedidos => { :product_size } , :estado, :brand, :customer).where(:is_quote => false) 

シモンズ:私は知っているproducts_pedidoが:) ActiveRecordのグッドプラクティスに従ってmispelledされます。スタックトレースなし

答えて

0

は、ここで私が提案するものです。

は、あなたのhas_oneのメソッド名はproducts_pedidosであると仮定すると、あなたの問題は、あなたのハッシュの書き方に問題のように見えます。

構文では値なしのハッシュを返すキーproducts_pedidosでハッシュが作成されます。これはおそらくエラーが発生している場所です。ここで説明する偉大なポストだ

@pedidos = Pedido.includes(
    :pedidos_payments, 
    {products_pedidos :product_size}, 
    :estado, 
    :brand, 
    :customer 
).where(is_quote: false) 

@pedidos = Pedido.includes(:products_pedidos => { :product_size }) 

あなたがそう望むのは全体のクエリは次のようになりますproduct_size

@pedidos = Pedido.includes({products_pedidos: :product_size }) 

値とキーproducts_pedidosとハッシュを返すこれですActiveRecordのネストされたリレーションシップの詳細については、Rails - Nested includes on Active Records?を参照してください。また、products_pedidoでの命名を固定命名規則に従うように修正することをお勧めします。

関連する問題