railsにおいて、下記のようにPolymorphicなテーブルをincludesしたモデルで、さらに、同じテーブルをjoins等すると、Cannot eagerly load the polymorphic associationというエラーが発生します。
ruby
1#example1 2@query = Models.includes(table: :polymorphic) 3@query = @query.joins(:table).where(id: 1)
しかし、ここでsendメソッドを使ってwhereを呼び出すと、エラーが発生しません。
ruby
1#exapmle2 2@query = Models.includes(table: :polymorphic) 3@query = @query.joins(:table).send :where, "id = 1"
どうしてこのようなことが起こるのか色々調べてみましたがわかりませんでした。
どうかご教授いただけると幸いです。よろしくお願い致します。
polymorphicはmodel層をみないとなんとも言えません、そもそもrailsのversionによって挙動が違うし、includes(left outer join)を持ち出してjoins(inner join)と繋げてどやって言われても検証する気にもなりません。
あなたの回答
tips
プレビュー