質問編集履歴

2 タイトル変更

Velonica

Velonica score 35

2017/04/20 17:54  投稿

ruby on rails におけるsendメソッドについて
ruby on rails のjoins/includesにおけるsendメソッドについて
railsにおいて、下記のようにPolymorphicなテーブルをincludesしたモデルで、さらに、同じテーブルをjoins等すると、Cannot eagerly load the polymorphic associationというエラーが発生します。
```ruby
#example1
@query = Models.includes(table: :polymorphic)
@query = @query.joins(:table).where(id: 1)
```
しかし、ここでsendメソッドを使ってwhereを呼び出すと、エラーが発生しません。
```ruby
#exapmle2
@query = Models.includes(table: :polymorphic)
@query = @query.joins(:table).send :where, "id = 1"
```
どうしてこのようなことが起こるのか色々調べてみましたがわかりませんでした。
どうかご教授いただけると幸いです。よろしくお願い致します。
  • Ruby

    15018 questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails 4

    2653 questions

    Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

1 文章の修正

Velonica

Velonica score 35

2017/04/20 16:29  投稿

ruby on rails におけるsendメソッドについて
railsにおいて、下記のようにPolymorphicなテーブルをincludesしたモデルで、さらに、同じテーブルをjoins等すると、Cannot eagerly load the polymorphic associationというエラーが発生します。
```ruby
#example1
@query = Models.includes(table: :polymorphic)
@query = @query.joins(:table).where(id: 1)
```
しかし、ここでsendメソッドを使ってwhereを呼び出すと、エラーが発生しません。
```ruby
#exapmle2
@query = Models.includes(table: :polymorphic)
@query = @query.joins(:table).send :where, "id = 1"
```
どうしてこのようなことが起こるのか色々調べてみましたがわかりませんでした。
どうかご教授いただけると幸いです。
どうかご教授いただけると幸いです。よろしくお願い致します。
  • Ruby

    15018 questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails 4

    2653 questions

    Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る