私はちょうど ActiveRecord と SQL を学んで:include
いて、1 つの SQL クエリを実行するという印象を受けました。だから私がするなら:
Show.first :include => :artist
1 つのクエリを実行し、そのクエリは最初のショーとアーティストを返します。しかし、生成された SQL を見ると、次の 2 つのクエリが表示されます。
[2013-01-08T09:38:00.455705 #1179] DEBUG -- : Show Load (0.5ms) SELECT `shows`.* FROM `shows` LIMIT 1
[2013-01-08T09:38:00.467123 #1179] DEBUG -- : Artist Load (0.5ms) SELECT `artists`.* FROM `artists` WHERE `artists`.`id` IN (2)
Railscast のビデオの 1 つを見て、著者が:include
vs:join
を調べていて、コンソールで出力 SQL を見たところ、それは大きな SQL クエリでしたが、クエリは 1 つだけでした。これが本来あるべき姿なのか、それとも何か足りないのだろうかと思っています。