が言うことができますどこに含まれます1つのクエリをレールに入れますか?私はそれがwhere
パラメータで動作させることはできませんネストされたが、我々は3つのテーブルを持っているRailsの上
Product.includes(product_type: [product_type_options])
.where("product_type_options.size = 'XL'")
:よう
何か。何か案が?
が言うことができますどこに含まれます1つのクエリをレールに入れますか?私はそれがwhere
パラメータで動作させることはできませんネストされたが、我々は3つのテーブルを持っているRailsの上
Product.includes(product_type: [product_type_options])
.where("product_type_options.size = 'XL'")
:よう
何か。何か案が?
これは、あなたが使用することができます
Product.includes(product_type: :product_type_options)
.where(product_types: { product_type_options: { size: 'XL' } })
が
Product.joins(product_type: :product_type_options).where("product_type_options.size = 'XL'")
に合流動作するはずです、これは小さな構文の変更で、これを試してみてください。私はそれをテストしていない。それが動作するかどうか、私に教えてください:)
Product.includes(product_type: [product_type_options])
.where("product_type_options.size" => 'XL')
答えは質問の例でした。それではうまくいきませんでした。あなたの答えを改善するか、それを削除することを検討してください。 – Myonara
私の答えは改善されているか、問題の修正が求められました。私が行った変更を見てください。誰もがこのポストのような問題の自分のバージョンを解決するために変更から推測することができます。 –
@Icemanは近くにあった...それは、where句内の明示的なハッシュとして表現する必要があるため、それは「product_types」を見ていない理由は、その後、Rubyが行います適切な入れ子...
Product.includes(product_type: :product_type_options)
.where({ product_types: { product_type_options: { size: 'XL' } } })
奇妙な、しかし句は、ネストされた仕事を含むことができる場所に余分{}を加えます。
どのようなエラーが表示されますか?私はクエリから考えている配列を削除する必要があります –