SQLのログを見ていて気がついたのですが、 最近のActiveRecordは以下のようにEagerLoadingしようとすると、 こんな感じのSQLを発行します。

   1  ?> Article.find(:all, :include => [:user => :face]);1
   2  => 1
   3  >>   Article Load (0.005234)   SELECT * FROM `articles`
   4    User Load (0.000645)   SELECT * FROM `users` WHERE (`users`.id IN ('13','9','37','17','1','3'))
   5    Face Load (0.002931)   SELECT `faces`.* FROM `faces` WHERE (`faces`.user_id IN (1,3,9,13,17,37))

以前のようにJOINを使わずに、3回に分けるようになっているのですね。

しかしながら、条件が複雑になってくると、 :limitオプションとの相性が悪いケースがあるようで、 まだ若干バグがあるようです。 そんな時は手で:joinsを書いています。

posted by Png genki on Sun 3 Aug 2008 at 22:18

いくつか要望をいただいていた、 コピー&ペーストする時に行番号は邪魔になるという問題を解決するために、 コピー&ペーストモードを実装いたしました。 ソース部分をクリックすると、行番号が隠れるようになります。 ソース部分の外をクリックすると元に戻ります。

以下テスト用。

   1  class User < ActiveRecord::Base
   2    has_many :comments
   3  end

  • インデント対応テスト
       1  def foo
       2    puts "foo"
       3  end
    

一行テスト。

   1  Hash.new({})

posted by Png genki on Sun 3 Aug 2008 at 11:49
Contents
最近のActiveRecordとEagerLoading
ソースコードのコピー&ペーストモードを実装しました
Comments
dsjf: https://gist.github.com/6bf1bf2c3cbb5eb6e7a7 これ... '13-1
瀧内元気: おお、チェックしてみます。thx! '11-12
overisland: Reeder for iPhone もこの UI を実装していますね。 '11-12
瀧内元気: その情報は見たのですが、以下のサイトによると、現在はまた必要になってるっぽいんですよね。 ... '11-12
tkawa: http://devcenter.heroku.com/articles/rails31_he... '11-12
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ