1

Railsコントローラー( "filings#index")で次のActiveRecord呼び出しがあります。

@filings = Filing.order("created_at DESC").limit(limit).offset(start).joins("LEFT OUTER JOIN companies ON companies.id=filings.company_id")

各ファイリングは会社に属します。アクセスできるようにしたいと思います:

@filings.first.company

そもそもOUTERJOINを完了することが目的だったので、追加のSQLクエリを作成する必要はありません。ただし、@ filings.first.companyを呼び出すと、追加のクエリが実行されます。

SELECT "companies".* FROM "companies" WHERE "companies"."id" = 989 LIMIT 1

この2番目のクエリが発生しないようにするにはどうすればよいですか?最初のクエリの結果として、情報はすでに保存されているべきではありませんか?

4

1 に答える 1

1

データベースからの情報を含める必要があります。

@filings = Filing.includes(:company).order("created_at DESC").offset(start).limit(limit)

ジョン・ネーグルとサリソンへの帽子のヒント

于 2012-11-29T17:15:10.297 に答える